Systems and methods for creating a non-curated viewing perspective in a video game platform based on a curated viewing perspective

ABSTRACT

Systems and methods are described for creating a non-curated viewing perspective in a video game platform based on a curated viewing perspective. For example, a user may be viewing a gameplay video of a video game. The user may be interested in viewing the same gameplay from a different perspective in the video game. Accordingly, a media guidance application may identify the video game in the video and retrieve video game engine data associated with the video game, to replicate, on a video game console, the gameplay depicted in the video. The user may be able to change the perspective (e.g., in-game position of the camera and the camera angle) within the replicated video game platform, via user commands. In response to receiving a user command to change the curated viewing perspective to a non-curated viewing perspective, the media guidance application may re-render the gameplay from the non-curated viewing perspective.

BACKGROUND

The modern advancements in gaming technology such as improved hardwarecapabilities and robust software techniques have increased thepopularity and accessibility of video games. In addition to actuallyplaying video games, users like to share gameplay content such as videosof tutorials, game mechanics, and tournaments. Accordingly, usersconsuming this gameplay content may desire to customize their experienceby viewing the gameplay content through different perspectives withinthe video game. Conventional systems in different media ecosystems allowusers to switch between predetermined camera angles/perspectives.However, conventional systems do not allow the user to select anyarbitrary position in a video game environment and view gameplay fromthe user-selected perspective.

SUMMARY

Systems and methods are thus described for creating a non-curatedviewing perspective in a video game platform based on a curated viewingperspective. The non-curated viewing perspective may be associated withthe user-selected camera angle and in-game position; the curated viewingperspective may be associated with the camera angle and in-game positionof the original video the user is viewing. For example, the user may beviewing a gameplay video of the video game “Tennis World Tour 2018,” ona streaming website such as YouTube. The user may be interested inviewing the same gameplay from a perspective in the video game that isdifferent from the perspective of the YouTube video. Accordingly, amedia guidance application may identify the video game in the YouTubevideo and retrieve video game engine data associated with the game.Suppose the video game can be played on a video game console such as thePlayStation 4. In response to determining that the user has access to aPlayStation 4, the media guidance application may replicate the gameplaydepicted in the YouTube video on the PlayStation 4 using the video gameengine data. The user may be able to change the perspective (e.g.,in-game position of the camera and the camera angle) within thereplicated video game platform, via user commands. In response toreceiving a user command to change the curated viewing perspective to anon-curated viewing perspective, the media guidance application mayre-render the gameplay from the non-curated viewing perspective.

In some aspects, the media guidance application may receive, at userequipment, a first stream of video contents that is depicted using acurated viewing perspective of a video game environment that issimultaneously transmitted to a plurality of user equipment. The firststream of video contents may be any video that depicts video gamegameplay. For example, the first stream may be a video sent to the user,a video uploaded to a streaming website such as YouTube (e.g., “let'splay format”), or an in-game tutorial. Suppose the user is viewing alive stream gameplay video of a tennis simulation game (e.g., TennisWorld Tour 2018) via a streaming website such as YouTube. The firststream may depict the video game environment as rendered by a video gameconsole (e.g., a PlayStation 4). The rendered content that makes up thevideo game environment may include game objects such as player models,the tennis stadium, the court, the tennis net, the ball, etc. The videogame environment may include visible game mechanics (e.g., the movementof the characters and the ball) and audio information. The curatedviewing perspective may comprise a camera angle and an in-game viewingposition. For example, traditionally in tennis simulation games, thein-game viewing position is an elevated position behind a first tennisplayer. The in-game viewing position allows the camera angle (e.g., aviewing field directed in a particular direction) to capture the entirecourt and the second tennis player on the opposite side.

The media guidance application may receive video game engine datasimultaneously with the first stream. The video game engine data refersto all information that is needed to render the content of the videogame. This information may include code, datasets, graphics, audio, etc.In addition, the video game engine data may include information aboutthe game such as the title, genre, creator names, developer names, gameformat, release date, etc. In some embodiments, the video game enginedata may include the input video game commands that were executed tocreate the video game gameplay depicted in the first stream. Forexample, alongside the live stream gameplay video on YouTube, the usermay simultaneously receive at user equipment from a third-party contentprovider, downloadable metadata files comprising of video game enginedata which includes real-time executed commands. These commands mayinclude moving the virtual tennis player around the court and hittingthe ball. In some embodiments, the media guidance application may alsoreceive audio or text commentary associated with the first stream. Theaudio or text commentary may be received separately from video and thevideo game engine data.

The media guidance application may determine a video game associatedwith the video game environment and the video game engine data. Forexample, the media guidance application may determine from the videogame engine data, that the name of the video game associated with thevideo game environment is “Tennis World Tour 2018.” In the case that thevideo game engine data does not include the name of the video game, themedia guidance application may retrieve a frame of the first stream(e.g., via screen capture) depicting the video game environment and mayapply imaging processes (e.g., coefficient of correlation calculation,and keypoint matching) to compare with gameplay images on the Internetor in a video game database. In response to determining a match (e.g.,using correlation techniques) to an image on the Internet or in thevideo game image database, the media guidance application may determinethe name of the video game associated with the matched image. Forexample, the video game database may contain images of gameplay for aplurality of video games and group/classify each image based on the nameof the respective video game.

In some embodiments, in order to determine the video game, the mediaguidance application may retrieve a first identifier associated with thevideo game environment and a second identifier associated with the videogame engine data. The first identifier and second identifier may bemetadata such as a keyword, an image, a title, an audio clip, a gameobject, code, etc. The media guidance application may search the videogame database comprised of metadata associated with a plurality of videogames, for an entry of the video game that is associated with both thefirst identifier and the second identifier. Furthermore, the video gamedatabase may include entries of various video games. For each entry, thevideo game database may include metadata such as title, developer,release date, genre, associated characters, graphics, audio clips, andgame code. For example, the media guidance application may search forthe first and second identifiers, which may be a screenshot and a gametitle, respectively. The media guidance application may perform imageprocessing (e.g., keypoint matching), sound processing (e.g., soundmatching) or textual comparisons to identify metadata in the video gamedatabase that correspond to the first and second identifiers. In someembodiments, the media guidance application may compare thecorrespondence, which may be a quantitative or a qualitative value, to apredetermined threshold. If the correspondence between the metadata andat least one of the first identifier or second identifier is greaterthan or equal to the threshold, the media guidance application maydetermine that the first and second identifiers correspond to themetadata for a particular entry of a video game. In some embodiments,the threshold may vary based on the metadata that is being compared. Forexample, an audio sample comparison may be associated with a thresholdat 80% (e.g., the samples being compared should have at least an 80%correlation), whereas a textual comparison of a game title may beassociated with a threshold at 100% (e.g., the titles need to matchexactly). Accordingly, the media guidance application may determine thevideo game associated with the video game environment and the video gameengine data, based on the matched entry in the video game database.

In some embodiments, the media guidance application may simply requestthe user to identify the video game by generating for display an inputprompt and allowing the user to identify the video game through text,voice commands or gestures. The media guidance application may alsodisplay several identifiers of candidate video games and allow the userto pick the video game identifier that matches the video game in thefirst stream.

The media guidance application may determine the video game platformthat supports the video game engine data associated with the video game.The video game platform may be an actual video game console (e.g.,PlayStation 4, Xbox One, PC, etc.) or an emulator that can imitate thefunctionality of a video game console. Based on the video game enginedata or the metadata of the first stream, both of which may includeinformation about the video game console used in gameplay, the mediaguidance application may identify a compatible emulator or video gameconsole as the video game platform. The media guidance applicationutilizes the video game platform and the video game engine data torecreate the video game in the first stream.

The media guidance application may then determine whether the video gameand the video game platform are accessible to the user equipment. Forexample, the media guidance application may refer to the user profile todetermine whether the user has access to the video game console and/orthe video game. Suppose that the live stream the user is watchingfeatures the game “Tennis World Tour 2018,” as played on the PlayStation4. Based on the user profile, the media guidance application maydetermine that the user equipment has access to both the PlayStation 4and “Tennis World Tour 2018.” In some embodiments, the video game enginedata may be compatible with multiple video game consoles. For example, agame such as “Tennis World Tour 2018” is compatible with the PlayStation4 and the Xbox One. Even if the user does not have access to thePlayStation 4, the media guidance application may determine that theuser equipment has access to the Xbox One and an alternate version of“Tennis World Tour 2018” that is compatible with the Xbox One. In someembodiments, the media guidance application may determine that the userequipment has access to an emulator on a video game platform (e.g., apersonal computer) different from the one specified in the metadata(e.g., a PlayStation 4). The emulator on the personal computer may beable to emulate the functionality of the PlayStation 4. In addition, themedia guidance application may determine that the user equipment hasaccess to an alternate version of “Tennis World Tour 2018” that iscompatible with the emulator. In response, the media guidanceapplication may determine that the video game and video game platformcan be accessed by the user equipment.

In response to determining that the video game and the video gameplatform are not accessible to the user equipment, the media guidanceapplication may generate, for display, the first stream of videocontents that is depicted using the curated viewing perspective. In thisembodiment, the media guidance application may determine that the userequipment does not have resources (e.g., the video game and/or the videogame platform) to replicate, in the video game platform, the videocontents of the first stream. In some embodiments, the media guidanceapplication may generate for display an option to purchase or rent aversion of the video game, the video game platform, a light playbackclient, and/or an emulator of the video game platform. In someembodiments, the media guidance application may refer to the userprofile to identify a friend (e.g., via social media) associated withthe user who has access to the video game and/or the video gameplatform. In response, the media guidance application may generate fordisplay an option for the user to request the video game and/or thevideo game platform from the user's friend. If the user accepts theoption, the media guidance application may send a request for the videogame and/or the video game platform to the user's friend. If the user'sfriend accepts, the media guidance application may retrieve the videogame and/or an emulator associated with the video game platform.

The media guidance application may then process the video game enginedata to generate a second stream comprising a replication of the videocontents that is viewable within a video game platform. The mediaguidance application may use the video game engine data to identify thegame objects rendered in the video game environment, as depicted in thefirst stream. For example, the video game engine data may provide apredetermined list of game objects, graphics, positions, mechanics andaudio associated with each frame of the first stream. If the video gameengine data does not provide this information for each frame of thefirst stream, the media guidance application may utilize objectionrecognition to identify objects in the first stream and compare them tothe video game engine data.

For example, in some embodiments, the media guidance application maycapture a fingerprint of the video contents of the first stream. Thefingerprint of the video contents may be an image capture of a set offrames of the video contents. The fingerprint may include an audio clipassociated with the set of frames. The fingerprint may also take includeinput video game commands associated with the gameplay in the set offrames. As discussed previously, these input video game commands may beretrieved from the video game engine data. The media guidanceapplication may then determine a set of characteristics associated withthe fingerprint. For example, the media guidance application may useobject recognition to identify objects in the set of frames. Theseobjects may include the tennis players, the court, the net, the tennisball, etc. The media guidance application may also perform soundrecognition to isolate various sounds in the audio clip. For example,the sounds may be of the tennis ball being hit, the crowd, the players,the commentators, etc. In some embodiments, the audio associatedexclusively with the video game in the first stream may be received as apart of the video game engine data. For example, the audio of the firststream may include the video game audio (e.g., tennis ball being hit,the crowd, etc.) and additional overlaid audio (e.g., voices of theplayers, interviews, tournament hosts, etc.). The video game audio maybe retrieved separately from the first stream, thus allowing the mediaguidance application to differentiate sounds that are overlaid, fromsounds associated with the video game audio. In some embodiments, theuser may select to remove the overlaid audio (e.g., the commentary ofthe player in the first stream) in order to add his/her owncommentary/analysis.

In some embodiments, the media guidance application may perform objectrecognition on a frame of the first stream to identify a dimensionalspace. The media guidance application may determine whether the firststream is depicting a three-dimensional space (e.g., a tennis court) ora two-dimensional space (e.g., a side scrolling environment such as inSuper Mario World). In order to identify the dimensional space, themedia guidance application may utilize a combination of computer visionand machine learning. More specifically, the media guidance applicationmay use the frame of the first stream as an input to a machine learningalgorithm that outputs a depth map. The machine learning algorithm maybe pre-trained using a variety of images and dimensional data associatedwith the images. An algorithm trained to identify how objects in animage appear, based on the dimensions of the space depicted in theimage, may output the identity of the dimensional space. For example,the algorithm, as implemented by the media guidance application, maydetect features such as the position of various objects in the frame anddetermine a depth map accordingly. If the depth map is described inthree dimensions (e.g., via an x-coordinate, a y-coordinate and az-coordinate), the media guidance application may determine that thedimensional space is three-dimensional. If the depth map is described intwo dimensions (e.g., via an x-coordinate and a y-coordinate), the mediaguidance application may determine that the dimensional space istwo-dimensional.

The media guidance application may then perform object recognition onthe frame of the first stream to identify the object of the plurality ofobjects. For example, the media guidance application may utilize imageprocesses such as segmentation to identify pixels in the frame that canbe grouped to form an object. In response to segmenting the frame, themedia guidance application may compare the segmented pixels to images inan image database stored in memory or in a remote server. The imagedatabase may contain images of various objects and identify them withnames. For example, the media guidance application may segment a groupof pixels in the frame of the first stream that form a tennis ball. Themedia guidance application may compare those segmented pixels to theimages in the image database and determine a correspondence with animage of a tennis ball. In response to determining the match, the mediaguidance application may classify the segmented pixels based on the nameof the image that matched the segmented pixels.

The media guidance application may determine the location of the objectof the plurality of objects with respect to a virtual viewing positionin the dimensional space. For example, the media guidance applicationmay utilize the depth map discussed previously to determine thepositions of the objects relative to each other. For example, the depthmap may indicate that the first tennis player is at an arbitraryposition (1, 2, 1) and the second tennis player is at (−5, 2, 5). Thesevalues indicate that the second tennis player is 6 units to the left and4 units ahead of the first tennis player. As mentioned previously, theseunits may be arbitrary (e.g., virtual inches, meters, pixels, etc.). They-coordinate signifies that both tennis players are at the sameelevation.

In some embodiments, the media guidance application may determinewhether a set of characteristics, wherein the set of characteristicscomprises a dimensional space, an object of a plurality of objects, anda location of the object of the plurality objects, associated with thefingerprint corresponds with a set of game elements in the video gameengine data.

For example, in some embodiments, the media guidance application maysearch the video game engine data for a virtual game space that matchesthe dimensional space. For example, in response to determining that thefirst stream is associated with a three-dimensional space, the mediaguidance application may search the video game engine data for code thatdescribes three-dimensional objects and environments. In response todetermining that the video game engine data is associated withthree-dimensional objects and rendering, the media guidance applicationmay determine that the virtual game space of the video game is expressedin three dimensions.

The media guidance application may then search the video game enginedata for a game object that matches the object of the plurality ofobjects. For example, the media guidance application may label theobject with an identifier such as “tennis player one.” In someembodiments, the media guidance application may associate additionaldetails with tennis player one. For example, the media guidanceapplication may recognize that tennis player one is Roger Federer and iswearing a blue shirt with black shorts. The game elements in the videogame engine data may be graphics, audio, game code, etc. The mediaguidance application may determine whether there are any game elementsassociated with Roger Federer in the video game engine data. Forexample, the media guidance application may identify code in the videogame engine data that can render Roger Federer in the virtual gamespace. The code may also reference the black shirt and black shortsattire, audio clips of Roger Federer, game mechanics that are associatedwith his movement, etc., which are also found in the video game enginedata. Accordingly, the media guidance application may determine thatobject “tennis player one” is associated with a specific game element(e.g., game code) that can be used to render an in-game version of theobject.

In response to identifying the virtual game space and the game object inthe video game engine data, the media guidance application may determinea set of game coordinates of the game object in the virtual game spacebased on the location/position of the object of the plurality ofobjects. As discussed previously, the positions of the objects in theplurality of objects are relative to any arbitrary object (e.g., tennisplayer one) identified in the first stream. In order to determine gamecoordinates, the media guidance application may first retrieve thevirtual viewing position from the video game engine data. For example,video game engine data may indicate a default virtual viewing positionthat the game initializes the video game environment around. Inaddition, the media guidance application may determine the defaultposition of a game object such as tennis player one. The media guidanceapplication may determine the displacement between the game object andthe virtual viewing position. Suppose that the virtual viewing positionis at an origin (0, 0, 0) and the game object is at the coordinate (0,−15, 20). This signifies that when the video game is normally rendered,tennis player one is always 15 units below and 20 units ahead of thevirtual viewing position. Using the locations/positions of the pluralityof objects relative to the object “tennis player one” in the firststream, the media guidance application may calculate the gamecoordinates of the game objects relative to the game object, tennisplayer one. For example, if the virtual displacement between tennisplayer one and tennis player two is (−1, 0, 40) in the first stream, themedia guidance application may determine that the displacement betweenthe respective game objects is proportional to (−1, 0, 40) in thevirtual game space.

The media guidance application may then determine a video refresh rateof the first stream. For example, the media guidance application mayrefer to the metadata of the first stream to determine the amount offrames per unit time (e.g., per second) transmitted in the first stream.The media guidance application may determine a game refresh rate basedon the video refresh rate. For example, the media guidance applicationmay retrieve a refresh rate in the video game engine data. This refreshrate may indicate the amount of frames in a period of time that can bepresented to a user accessing the video game (e.g. 60 Hz). The videorefresh rate may be different from this refresh rate because ofstreaming conditions associated with receiving the first stream (e.g.,50 Hz). The media guidance application may thus determine a game refreshrate whose value is equal to one of the refresh rates or is between thetwo refresh rates (e.g., 45 Hz).

Accordingly, the media guidance application may render at the gamerefresh rate, within the video game platform, the game object at the setof game coordinates in the virtual game space. For example, the mediaguidance application may execute the game code provided in the videogame engine data to render the game objects at their respective gamecoordinates. Furthermore, the media guidance application may monitor thefirst stream and re-render the game objects based on the game refreshrate. Thus, if the game refresh rate transmits 45 frames per second, themedia guidance application may monitor for changes in the first streamfor each frame and re-render accordingly.

The media guidance application may thus generate for display the videocontents within the video game platform at the virtual viewing positionand at a virtual viewing angle that matches the curated viewingperspective. The virtual viewing angle may be a vector that points in aspecific direction in the virtual game space. For example, from thevirtual viewing position (0, 0, 0), the vector may point to thecoordinate (0, −15, 30) (e.g., the center of the virtual tennis net).Therefore, the virtual viewing angle focus the curated viewingperspective to the court. If the virtual viewing angle is associatedwith a vector pointing to the game coordinate (0, −15, −30), the curatedviewing perspective may be focused in the opposite direction (e.g.,towards the virtual audience in the stands behind the court).

The media guidance application may generate for display the videocontents within the video game platform using the curated viewingperspective. The video contents of the second stream, unlike the firststream, are based in the video game platform. Therefore, the secondstream is not simply a video and the user can interact with the secondstream through user commands.

The media guidance application may receive input, at the user equipment,requesting to view the video contents from a non-curated viewingperspective. For example, in some embodiments, the media guidanceapplication may receive a user-selected virtual viewing position in thevideo game platform of the second stream. The media guidance applicationmay generate a virtual cursor that points to a game coordinate in thevirtual game space. The user may move the virtual cursor to anyarbitrary position in the virtual game space. For example, given thatTennis World Tour 2018 is a three-dimensional game, the media guidanceapplication may receive a user-selected virtual viewing position whenthe user shifts the virtual cursor to the coordinates (4, 5, 2). Thesecoordinates may be in arbitrary units (e.g., meters, inches, pixels,etc.).

The media guidance application may then determine a virtual displacementbetween the user-selected virtual viewing position and the curatedvirtual viewing position. For example, if the user-selected virtualviewing position is (4, 5, 2) and the curated virtual viewing positionis (0, 0, 0), then the virtual displacement between the two points is(4, 5, 2) (e.g., the difference between each respective coordinate ofthe two positions). It should be noted that the displacement isassociated with a vector that points to the user-selected virtualviewing position.

In some embodiments, the media guidance application may shift each gamecoordinate of the set of game coordinates by the virtual displacement.For example, the position of tennis player one is originally (10, −15,20) with respect to the curated virtual viewing position. Upon shiftingthe position by the virtual displacement, the new position becomes (6,−20, 18). The position of the user thus remains stationary. However, allgame objects and their respective positions are shifted by the virtualdisplacement.

In some embodiments, the media guidance application may shift a virtualviewing position of the user by the virtual displacement to theuser-selected virtual viewing position. For example, the position of theuser is originally (0, 0, 0) based on the curated virtual viewingposition. Upon shifting the virtual viewing position by the virtualdisplacement, the new position becomes (4, 5, 2). The position of thegame objects thus remains stationary.

The media guidance application may thus generate for display, using thevideo game engine data, the viewing contents from the non-curatedviewing perspective. For example, the media guidance application maychange the virtual position of the user and the camera angle based onthe requested non-curated viewing perspective. Using the video gameengine data, the media guidance application may re-render all gameobjects, audio, graphics and virtual environments associated with thefirst stream at a new set of positions with respect to the user's newvirtual position. This allows the user to view the gameplay from adifferent perspective (e.g., the non-curated perspective).

In some embodiments, the media guidance application may receive a secondinput, at the user equipment, requesting to view the video contents fromthe curated viewing perspective. For example, the media guidanceapplication may generate for display an option for the user to switchback to the curated viewing perspective. In this case, the user mayselect that option. In response to receiving the second input, the mediaguidance application may switch the video contents within the video gameplatform from the non-curated viewing perspective to the curated viewingperspective. For example, the media guidance application may re-renderall game objects at respective game coordinates relative to the curatedvirtual viewing position.

In some embodiments, the media guidance application may receive an inputat the user equipment, requesting to change additional overlaid audio inthe first stream, to user commentary. For example, the media guidanceapplication may retrieve the audio of the first stream and isolate thevideo game audio (e.g., the sounds associated with the game objects)from additional overlaid audio (e.g., the external sounds such asnon-game music, player commentary, etc.). The media guidance applicationmay create a second stream that does not include the additional overlaidaudio and may allow the user to add his/her own audio (e.g., usercommentary, user's selected music, etc.).

In some embodiments, the media guidance application may determine anamount of correspondence between the set of characteristics associatedwith the fingerprint with a set of game elements in the video gameengine data. The amount of correspondence may be quantitative (e.g., apercentage, a fraction, a normalized correlation, etc.) or qualitative(e.g., “similar,” “not similar,” “exact match,” “no match”). Suppose theset of characteristics comprise of graphics, audio files, and textualinformation. The set of game elements may comprise of mathematicalmodels, graphics, audio, and text. The media guidance application maycompare each characteristic with each game element and determine arespective amount of correspondence for each pair of characteristics andgame elements. Suppose the amount of correspondence between acharacteristic and a game element is 80%. The media guidance applicationmay then determine whether the amount of correspondence is greater thana threshold. The threshold may be a pre-determined value stored inmemory. The threshold may also be a qualitative or quantitative value.For example, the threshold may be 70%. In response to determining thatthe amount of correspondence is greater than the threshold, the mediaguidance application may generate the second stream based on the set ofgame data. In response to determining that the amount of correspondenceis less than the threshold, the media guidance application may generatefor display the first stream of the video contents. In this case, themedia guidance application is unable to match the characteristics of thefirst stream with the game elements in the video game engine data.Therefore, the media guidance application simply generates for displaythe first stream and does not attempt to generate the second stream.

In some embodiments, the media guidance application may receive a thirdrequest, at the user equipment, to make an alteration to the secondstream in the video game platform. The user may request to change atleast one of (1) a virtual viewing position, (2) a virtual viewingangle, (3) a game object, (4) a set of game coordinates of the gameobject, (5) a virtual game space, or (6) a game setting, all associatedwith the curated viewing perspective. For example, the user may beviewing gameplay of a tennis match in “Tennis World Tour 2018” from anon-curated viewing perspective. The non-curated viewing perspective maybe associated with a virtual viewing position behind a billboard in thestadium. Therefore, the user may be unable to view the actual tennisplayers on the court. Using the virtual cursor, the user may be able toselect various game objects in the virtual game space. Thus, the mediaguidance application may receive a selection of a game object such asthe billboard. In response, the media guidance application may generatean option to either re-position the game object to new game coordinates,hide the game object, resize the game object, or save the game object tomemory. The media guidance application may receive the user-selection ofthe option to hide the game object. In response, the media guidanceapplication may re-render the virtual game space without rendering theselected game option (e.g., thus allowing the user to see “throughwalls”).

In some embodiments, the media guidance application may identifynon-gameplay portions in the first stream and may isolate thenon-gameplay portions from the gameplay portions. The media guidanceapplication may then generate the second stream based on the gameplayportions. For example, the media guidance application may determine thatthe frames of the first stream include a picture-in-picture of theplayers playing the video game depicted in the first stream. Inresponse, the media guidance application may identify the remainder ofthe space in each frame that is not part of the picture-in-picture andsolely analyze the identified space to determine game objects. The mediaguidance application may create the second stream accordingly, andregenerate, in the second stream, the picture-in-picture featuring theplayers from the first stream. The non-gameplay portion may also beaudio. For example, the media guidance application may identify, usingcommon volume techniques, speech patterns, voice recognition, and/ornon-correlation with visual data, audio portions that are not from thegameplay. For example, this audio may be commentary from the players. Inresponse, the media guidance application may regenerate and overlay thenon-gameplay audio on the second stream. The media guidance applicationmay refer to user preferences to determine whether to regenerate thenon-gameplay portions in the second stream.

In some embodiments, the media guidance application may simultaneouslygenerate for display the first stream and the second stream, in responseto receiving a user request to present both streams for display. Supposethe user is viewing a video game tournament. The first stream maytherefore switch between gameplay and non-gameplay sections (e.g.,broadcast hosts talking, shots of the people playing the video game,etc.). The media guidance application may generate an option to lock onto the gameplay. In response to receiving a user selection to lock on tothe gameplay, the media guidance application may continue rendering thevideo contents of the second stream, even if the first stream switchesto a non-gameplay section. Accordingly, the user may also be interestedin viewing from the curated viewing perspective and the non-curatedviewing perspective simultaneously. The media guidance application maysimultaneously generate for display the first stream and the secondstream, allowing the user to, for example, access the video game in thevideo game platform while listening to the broadcast hosts in the firststream. Considering a potential delay between the first stream and thesecond stream (e.g., in order to present the second stream, the mediaguidance application requires extra time to monitor, parse, andre-render the video game engine data based on the first stream), themedia guidance application may rely on a buffer for the first stream, tosynchronize the video contents of the respective streams (e.g., visualsand audio). Accordingly, the media guidance application may accesssynchronization data such as timestamps to ensure synchronized playbackof the first and second stream. For example, the media guidanceapplication may compare a first timestamp associated with the curatedviewing perspective and a second timestamp associated with thenon-curated viewing perspective. In response to determining that thefirst timestamp and the second timestamp correspond to a same gameplayevent (e.g., the tennis ball hitting the net of the racket), the mediaguidance application may generate for display the first stream and thesecond stream such that the first timestamp and the second timestamp aresynchronized (e.g., playing in parallel).

To further elaborate, the media guidance application may synchronizeplayback of the first stream and the second stream by matching the firsttimestamp and second timestamp. In some embodiments, thissynchronization process involves the media guidance applicationdetermining a time delay between the first timestamp and the secondtimestamp and delaying the first stream by the time delay such that thegameplay event associated with the first timestamp and the gameplayevent associated with the second timestamp (e.g., the same gameplayevent in the two streams) are played back concurrently. In someembodiments, the media guidance application may determine whether thetime delay is greater than a delay threshold. The delay thresholdrepresents a preset maximum lag time (e.g., 10 seconds) between thefirst stream and the second stream. The user may also adjust the delaythreshold. In response to determining that the time delay is greaterthan the delay threshold, the media guidance application may attempt toreduce processing times associated with generating the second stream inorder to reduce the time delay. This is especially crucial forreplicating live gameplay streams shown in real-time. Accordingly, themedia guidance application may store game elements such as game objects,game coordinates, game audio or non-gameplay content (e.g., overlaidvideo/audio of the players) associated with the curated viewingperspective in a cache memory. Thus, the media guidance application mayquickly retrieve the game elements from the cache memory to generate thesecond stream.

In some embodiments, the media guidance application may identify anefficient manner to allocate memory in order to reduce processing times.For example, the media guidance application may store data in asolid-state drive and create caches for game objects that are oftenretrieved for generation in the video game platform. The media guidanceapplication may determine an amount of times the set of game coordinatesof the game object changes across fingerprints and/or an amount of timesthe game object appears in fingerprint(s) of the first stream. Forexample, the game coordinates for a tennis net may remain stationary inthe game space. In contrast, the game coordinates of the tennis ball maychange multiple times. The media guidance application may retrieve anoccurrence threshold that represents a minimum number of times a gameobject appears or a minimum number of times the game coordinates of agame object changes. The media guidance application may determinewhether the amount of times a game object appears in a fingerprint ofthe first stream is greater than the occurrence threshold. If the amountexceeds the occurrence threshold, the media guidance application maystore the game object and the data associated with the game object in acache memory. Similarly, if the amount of times the game coordinates ofa game object changes across fingerprints of the first stream is greaterthan the occurrence threshold, the media guidance application may storethe game object and the game coordinates in a cache memory. This ensuresquick data retrieval of the game objects and game coordinates andreduces processing times.

The media guidance application may also selectively render game elements(e.g., audio, game objects, game refresh rate, etc.) to reduceprocessing times for generating the second stream or to reduce excessivebandwidth consumption. For example, the media guidance application mayretrieve a threshold bandwidth from the user profile. Suppose thethreshold bandwidth is 10 Mbps (e.g., the maximum bandwidth capabilitiesof the network or a user-set maximum). The media guidance applicationmay determine that retrieving all video game engine data requires 7 Mbpsand receiving the first stream requires 5 Mbps. In order to avoidexceeding the threshold bandwidth, the media guidance application may,for example, retrieve only video game engine data that is not associatedwith audio information. Similarly, the media guidance application mayonly receive the video component of the first stream.

In some embodiments, the media guidance application may determinealternative actions associated with gameplay displayed in the firststream. The media guidance application may refer to the video gameengine data and determine the ideal action to perform in a specificin-game scenario. For example, the media guidance application maydetermine that in response to a tennis serve, the player should move thein-game tennis player along a certain vector and swing the racket at aspecific point in time, to make an ideal return (e.g., a return thatallows the player to earn a point). The media guidance application maycompare the action of the player with the ideal action to identifyissues. Suppose that the player moved the in-game tennis player along adifferent vector and failed to return the serve. The media guidanceapplication may generate for display the ideal action and highlight theissues in the original action (e.g., taking too many steps wide toreturn a tennis serve, or waiting in the wrong position for too long,etc.). In addition, the media guidance application may display a metricof how well the game was played in the first stream, in comparison tothe ideal actions.

It should be noted that the systems, methods, apparatuses, and/oraspects described above may be applied to, or used in accordance with,other systems, methods, apparatuses, and/or aspects described in thisdisclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 shows illustrative examples of a first stream and the respectivevirtual game space, in accordance with some embodiments of thedisclosure;

FIG. 2 shows an illustrative example of selecting a non-curated viewingperspective in the virtual game space, in accordance with someembodiments of the disclosure;

FIGS. 3 and 4 show illustrative examples of display screens generated bya media guidance application in accordance with some embodiments of thedisclosure;

FIG. 5 is a block diagram of an illustrative user equipment device inaccordance with some embodiments of the disclosure;

FIG. 6 is a block diagram of an illustrative media system in accordancewith some embodiments of the disclosure;

FIG. 7 is a flowchart of an illustrative process for creating anon-curated viewing perspective in a video game platform based on acurated viewing perspective, in accordance with some embodiments of thedisclosure;

FIG. 8 is a flowchart of a detailed illustrative process for creating anon-curated viewing perspective in a video game platform based on acurated viewing perspective, in accordance with some embodiments of thedisclosure;

FIG. 9 is a flowchart of a detailed illustrative process for generatingthe non-curated perspective by shifting the game coordinates associatedwith the game objects, in accordance with some embodiments of thedisclosure;

FIG. 10 is a flowchart of a detailed illustrative process for generatingthe non-curated perspective by shifting the virtual viewing position ofthe user, in accordance with some embodiments of the disclosure;

FIG. 11 is a flowchart of a detailed illustrative process fordetermining the video game associated with the video game environmentand the video game engine data, in accordance with some embodiments ofthe disclosure;

FIG. 12 is a flowchart of a detailed illustrative process for generatingthe second stream based on the set of game data, in accordance with someembodiments of the disclosure;

FIG. 13 is a flowchart of a detailed illustrative process fordetermining the set of characteristics associated with the fingerprint,in accordance with some embodiments of the disclosure;

FIG. 14 is a flowchart of a detailed illustrative process for generatingthe video contents of the second stream in the video game platform, inaccordance with some embodiments of the disclosure;

FIG. 15 is a flowchart of a detailed illustrative process for generatingthe video contents of the second stream in the video game platform, inaccordance with some embodiments of the disclosure; and

FIG. 16 is a flowchart of a detailed illustrative process for switchingthe video contents within the video game platform from the non-curatedviewing perspective to the curated viewing perspective, in accordancewith some embodiments of the disclosure.

DETAILED DESCRIPTION

Systems and methods are thus described for creating a non-curatedviewing perspective in a video game platform based on a curated viewingperspective. The non-curated viewing perspective may be associated withthe user-selected camera angle and in-game position; the curated viewingperspective may be associated with the camera angle and in-game positionof the original video the user is viewing. For example, the user may beviewing a gameplay video of the video game “Tennis World Tour 2018,” ona streaming website such as YouTube. The user may be interested inviewing the same gameplay from a perspective in the video game that isdifferent from the perspective of the YouTube video. Accordingly, amedia guidance application may identify the video game in the YouTubevideo and retrieve video game engine data associated with the game.Suppose the video game can be played on a video game console such as thePlayStation 4. In response to determining that the user has access to aPlayStation 4, the media guidance application may replicate the gameplaydepicted in the YouTube video on the PlayStation 4 using the video gameengine data. The user may be able to change the perspective (e.g.,in-game position of the camera and the camera angle) within thereplicated video game platform, via user commands. In response toreceiving a user command to change the curated viewing perspective to anon-curated viewing perspective, the media guidance application mayre-render the gameplay from the non-curated viewing perspective.

FIG. 1 shows illustrative examples of a first stream and the respectivevirtual game space, in accordance with some embodiments of thedisclosure. Stream 102 represents stream 102 that the user accesses.Stream 102 may be a video sent to the user, a video uploaded to astreaming website such as YouTube (e.g., “let's play format”), or anin-game tutorial. Suppose the user is viewing a live stream gameplayvideo of a tennis simulation game (e.g., Tennis World Tour 2018) via astreaming website such as YouTube. Stream 102 may depict the video gameenvironment as rendered by a video game console (e.g., a PlayStation 4).The rendered content that makes up the video game environment mayinclude game objects such as player models, the tennis stadium, thecourt, the tennis net, the ball, etc. The video game environment mayinclude visible game mechanics (e.g., the movement of the characters andthe ball) and audio information. The curated viewing perspective maycomprise a camera angle and an in-game viewing position. For example,traditionally in tennis simulation games, the in-game viewing positionis an elevated position behind a first tennis player, as displayed instream 102. The in-game viewing position allows the camera angle (e.g.,a viewing field directed in a particular direction) to capture theentire court and the second tennis player on the opposite side.

The media guidance application may receive video game engine datasimultaneously with stream 102. The video game engine data refers to allinformation that is needed to render the content of the video game. Thisinformation may include code, datasets, graphics, audio, etc. Inaddition, the video game engine data may include information about thegame such as the title, genre, creator names, developer names, gameformat, release date, etc. In some embodiments, the video game enginedata may include the input video game commands that were executed tocreate the video game gameplay depicted in stream 102. For example,alongside the live stream gameplay video on YouTube, the user maysimultaneously receive at user equipment, a downloadable metadata filecomprising of video game engine data which includes real-time executedcommands. These commands may include moving the virtual tennis playeraround the court and hitting the ball.

The media guidance application may determine a video game associatedwith the video game environment and the video game engine data. Forexample, the media guidance application may determine from the videogame engine data, that the name of the video game associated with thevideo game environment is “Tennis World Tour 2018.”

Furthermore, the media guidance application may determine the video gameplatform that supports the video game engine data associated with thevideo game. The video game platform may be an actual video game console(e.g., PlayStation 4, Xbox One, PC, etc.) or an emulator that canimitate the functionality of a video game console. Based on the videogame engine data or the metadata of stream 102, both of which mayinclude information about the video game console used in gameplay, themedia guidance application may identify a compatible emulator or videogame console as the video game platform. The media guidance applicationutilizes the video game platform and the video game engine data torecreate the video game in stream 102.

The media guidance application may then determine whether the video gameand the video game platform are accessible to the user equipment. Forexample, the media guidance application may refer to the user profile todetermine whether the user has access to the video game console and/orthe video game. Suppose that the live stream the user is watchingfeatures the game “Tennis World Tour 2018,” as played on the PlayStation4. Based on the user profile, the media guidance application maydetermine that the user equipment has access to both the PlayStation 4and “Tennis World Tour 2018.”

The media guidance application may then process the video game enginedata to generate a second stream comprising a replication of the videocontents that is viewable within a video game platform. The mediaguidance application may use the video game engine data to identify thegame objects rendered in the video game environment, as depicted instream 102. For example, the video game engine data may provide apredetermined list of game objects, graphics, positions, mechanics andaudio associated with each frame of stream 102. If the video game enginedata does not provide this information for each frame of stream 102, themedia guidance application may utilize objection recognition to identifyobjects in stream 102 and compare them to the video game engine data.

For example, in some embodiments, the media guidance application maycapture a fingerprint of the video contents of stream 102. Thefingerprint of the video contents may be an image capture of a set offrames of the video contents. The fingerprint may include an audio clipassociated with the set of frames. The fingerprint may also take includeinput video game commands associated with the gameplay in the set offrames. As discussed previously, these input video game commands may beretrieved from the video game engine data. The media guidanceapplication may then determine a set of characteristics associated withthe fingerprint. For example, the media guidance application may useobject recognition to identify objects in the set of frames. Theseobjects may include the tennis players, the court, the net, the tennisball, etc. The media guidance application may also perform soundrecognition to isolate various sounds in the audio clip. For example,the sounds may be of the tennis ball being hit, the crowd, the players,the commentators, etc.

In some embodiments, the media guidance application may perform objectrecognition on a frame of stream 102 to identify a dimensional space.The media guidance application may determine whether stream 102 isdepicting a three-dimensional space (e.g., a tennis court) or atwo-dimensional space (e.g., a side scrolling environment such as inSuper Mario World). In order to identify the dimensional space, themedia guidance application may utilize a combination of computer visionand machine learning. More specifically, the media guidance applicationmay use the frame of stream 102 as an input to a machine learningalgorithm that outputs a depth map. The machine learning algorithm maybe pre-trained using a variety of images and dimensional data associatedwith the images. An algorithm trained to identify how objects in animage appear, based on the dimensions of the space depicted in theimage, may output the identity of the dimensional space. For example,the algorithm, as implemented by the media guidance application, maydetect features such as the position of various objects in the frame anddetermine a depth map accordingly. If the depth map is described inthree dimensions (e.g., via an x-coordinate, a y-coordinate and az-coordinate), the media guidance application may determine that thedimensional space is three-dimensional. If the depth map is described intwo dimensions (e.g., via an x-coordinate and a y-coordinate), the mediaguidance application may determine that the dimensional space istwo-dimensional.

The media guidance application may then perform object recognition onthe frame of stream 102 to identify the object of the plurality ofobjects. For example, the media guidance application may utilize imageprocesses such as segmentation to identify pixels in the frame that canbe grouped to form an object. In response to segmenting the frame, themedia guidance application may compare the segmented pixels to images inan image database stored in memory or in a remote server. The imagedatabase may contain images of various objects and identify them withnames. For example, the media guidance application may segment a groupof pixels in the frame of stream 102 that form a tennis ball. The mediaguidance application may compare those segmented pixels to the images inthe image database and determine a correspondence with an image of atennis player (e.g., object 104). In response to determining the match,the media guidance application may classify the segmented pixels basedon the name of the image that matched the segmented pixels.

The media guidance application may determine the location of the objectof the plurality of objects with respect to a virtual viewing positionin the dimensional space. For example, the media guidance applicationmay utilize the depth map discussed previously to determine thepositions of the objects relative to each other. For example, the depthmap may indicate that the first tennis player (e.g., object 104) is atan arbitrary position (1, 2, 1) and the second tennis player is at (−5,2, 5). These values indicate that the second tennis player is 6 units tothe left and 4 units ahead of the first tennis player. As mentionedpreviously, these units may be arbitrary (e.g., virtual inches, meters,pixels, etc.). The y-coordinate signifies that both tennis players areat the same elevation.

In some embodiments, the media guidance application may determinewhether a set of characteristics, wherein the set of characteristicscomprises a dimensional space, an object of a plurality of objects, anda location of the object of the plurality objects, associated with thefingerprint corresponds with a set of game elements in the video gameengine data.

For example, in some embodiments, the media guidance application maysearch the video game engine data for a virtual game space that matchesthe dimensional space. For example, in response to determining thatstream 102 is associated with a three-dimensional space, the mediaguidance application may search the video game engine data for code thatdescribes three-dimensional objects and environments. In response todetermining that the video game engine data is associated withthree-dimensional objects and rendering, the media guidance applicationmay determine that the virtual game space of the video game is expressedin three dimensions. The virtual game space is represented as space 106in FIG. 1 .

The media guidance application may then search the video game enginedata for a game object that matches the object of the plurality ofobjects. For example, the media guidance application may label object104 with an identifier such as “tennis player one.” In some embodiments,the media guidance application may associate additional details withtennis player one. For example, the media guidance application mayrecognize that tennis player one is Roger Federer and is wearing a blueshirt with black shorts. The game elements in the video game engine datamay be graphics, audio, game code, etc. The media guidance applicationmay determine whether there are any game elements associated with RogerFederer in the video game engine data. For example, the media guidanceapplication may identify code in the video game engine data that canrender Roger Federer in the virtual game space. The code may alsoreference the black shirt and black shorts attire, audio clips of RogerFederer, game mechanics that are associated with his movement, etc.,which are also found in the video game engine data. Accordingly, themedia guidance application may determine that object 104 “tennis playerone” is associated with a specific game element (e.g., game code) thatcan be used to render an in-game version of the object, represented asgame object 108.

In response to identifying the virtual game space (e.g., space 106) andthe game object (e.g., game object 108) in the video game engine data,the media guidance application may determine a set of game coordinatesof the game object in the virtual game space based on thelocation/position of the object of the plurality of objects. Asdiscussed previously, the positions of the objects in the plurality ofobjects are relative to any arbitrary object (e.g., tennis player one)identified in stream 102. In order to determine game coordinates, themedia guidance application may first retrieve the virtual viewingposition from the video game engine data. For example, video game enginedata may indicate a default virtual viewing position that the gameinitializes the video game environment around. In addition, the mediaguidance application may determine the default position of a game objectsuch as tennis player one. The media guidance application may determinethe displacement between the game object and the virtual viewingposition. Suppose that the virtual viewing position is at an origin (0,0, 0) and the game object is at the coordinate (0, −15, 20). Thissignifies that when the video game is normally rendered, tennis playerone is always 15 units below and 20 units ahead of the virtual viewingposition. Using the locations/positions of the plurality of objectsrelative to the object “tennis player one” in stream 102, the mediaguidance application may calculate the game coordinates of the gameobjects relative to the game object, tennis player one. For example, ifthe virtual displacement between tennis player one and tennis player twois (−1, 0, 40) in stream 102, the media guidance application maydetermine that the displacement between the respective game objects isproportional to (−1, 0, 40) in the virtual game space.

The media guidance application may then determine a video refresh rateof stream 102. For example, the media guidance application may refer tothe metadata of stream 102 to determine the amount of frames per secondtransmitted in stream 102. The media guidance application may determinea game refresh rate based on the video refresh rate. For example, themedia guidance application may retrieve a refresh rate in the video gameengine data. This refresh rate may indicate the amount of frames in aperiod of time that can be presented to a user accessing the video game(e.g. 60 Hz). The video refresh rate may be different from this refreshrate because of streaming conditions associated with receiving stream102 (e.g., 50 Hz). The media guidance application may thus determine agame refresh rate whose value is equal to one of the refresh rates or isbetween the two refresh rates (e.g., 45 Hz).

Accordingly, the media guidance application may render at the gamerefresh rate, within the video game platform, the game object at the setof game coordinates in the virtual game space. For example, the mediaguidance application may execute the game code provided in the videogame engine data to render the game objects at their respective gamecoordinates. Furthermore, the media guidance application may monitorstream 102 and re-render the game objects based on the game refreshrate. Thus, if the game refresh rate transmits 45 frames per second, themedia guidance application may monitor for changes in stream 102 foreach frame and re-render accordingly.

The media guidance application may thus generate for display the videocontents within the video game platform at the virtual viewing positionand at a virtual viewing angle that matches the curated viewingperspective. The virtual viewing angle may be a vector that points in aspecific direction in the virtual game space. For example, from thevirtual viewing position (0, 0, 0), the vector may point to thecoordinate (0, −15, 30) (e.g., the center of the virtual tennis net).Therefore, the virtual viewing angle focus the curated viewingperspective to the court. If the virtual viewing angle is associatedwith a vector pointing to the game coordinate (0, −15, −30), the curatedviewing perspective may be focused in the opposite direction (e.g.,towards the virtual audience in the stands behind the court).

The media guidance application may generate for display the videocontents within the video game platform using the curated viewingperspective. The video contents of the second stream, unlike stream 102,are based in the video game platform. Therefore, the second stream isnot simply a video and the user can interact with the second streamthrough user commands.

FIG. 2 shows an illustrative example of selecting a non-curated viewingperspective in the virtual game space, in accordance with someembodiments of the disclosure. Space 202 is the same space as space 106in this example. Likewise, game object 206 represents the tennis playerrepresented as game object 108. The media guidance application mayreceive input, at the user equipment, requesting to view the videocontents from a non-curated viewing perspective. For example, in someembodiments, the media guidance application may receive a user-selectedvirtual viewing position in the video game platform of the secondstream. The media guidance application may generate virtual cursor 204that points to a game coordinate in the virtual game space. The user maymove the virtual cursor to any arbitrary position in the virtual gamespace. For example, given that Tennis World Tour 2018 is athree-dimensional game, the media guidance application may receive auser-selected virtual viewing position when the user shifts virtualcursor 204 to the coordinates (4, 5, 2), as represented by virtualcursor 208. These coordinates may be in arbitrary units (e.g., meters,inches, pixels, etc.).

The media guidance application may then determine a virtual displacementbetween the user-selected virtual viewing position and the curatedvirtual viewing position. For example, if the user-selected virtualviewing position is (4, 5, 2) (e.g., highlighted by virtual cursor 208)and the curated virtual viewing position is (0, 0, 0) (e.g., highlightedby virtual cursor 204), then the virtual displacement between the twopoints is (4, 5, 2) (e.g., the difference between each respectivecoordinate of the two positions). It should be noted that thedisplacement is associated with a vector that points to theuser-selected virtual viewing position.

In some embodiments, the media guidance application may shift each gamecoordinate of the set of game coordinates by the virtual displacement.For example, the position of tennis player one (e.g., game object 206)is originally (10, −15, 20) with respect to the curated virtual viewingposition. Upon shifting the position by the virtual displacement, thenew position becomes (6, −20, 18). The position of the user thus remainsstationary. However, all game objects and their respective positions areshifted by the virtual displacement.

In some embodiments, the media guidance application may shift a virtualviewing position of the user by the virtual displacement to theuser-selected virtual viewing position. For example, the position of theuser is originally (0, 0, 0) based on the curated virtual viewingposition. Upon shifting the virtual viewing position by the virtualdisplacement, the new position becomes (4, 5, 2). The position of thegame objects thus remains stationary.

The media guidance application may thus generate for display, using thevideo game engine data, the viewing contents from the non-curatedviewing perspective. For example, the media guidance application maychange the virtual position of the user and the camera angle based onthe requested non-curated viewing perspective. Using the video gameengine data, the media guidance application may re-render all gameobjects, audio, graphics and virtual environments associated with stream102 at a new set of positions with respect to the user's new virtualposition. This allows the user to view the gameplay from a differentperspective (e.g., the non-curated perspective). The viewing contentsare displayed in stream 210. Object 212 represents the same tennisplayer as game object 206. However, as can be seen, the viewing positionand the viewing angle have been changed based on the user's selection asindicated by virtual cursor 208.

The amount of content available to users in any given content deliverysystem can be substantial. Consequently, many users desire a form ofmedia guidance through an interface that allows users to efficientlynavigate content selections and easily identify content that they maydesire. An application that provides such guidance is referred to hereinas an interactive media guidance application or, sometimes, a mediaguidance application or a guidance application.

Interactive media guidance applications may take various forms dependingon the content for which they provide guidance. One typical type ofmedia guidance application is an interactive television program guide.Interactive television program guides (sometimes referred to aselectronic program guides) are well-known guidance applications that,among other things, allow users to navigate among and locate many typesof content or media assets. Interactive media guidance applications maygenerate graphical user interface screens that enable a user to navigateamong, locate and select content. As referred to herein, the terms“media asset” and “content” should be understood to mean anelectronically consumable user asset, such as television programming, aswell as pay-per-view programs, on-demand programs (as in video-on-demand(VOD) systems), Internet content (e.g., streaming content, downloadablecontent, Webcasts, etc.), video clips, audio, content information,pictures, rotating images, documents, playlists, websites, articles,books, electronic books, blogs, chat sessions, social media,applications, games, and/or any other media or multimedia and/orcombination of the same. Guidance applications also allow users tonavigate among and locate content. As referred to herein, the term“multimedia” should be understood to mean content that utilizes at leasttwo different content forms described above, for example, text, audio,images, video, or interactivity content forms. Content may be recorded,played, displayed or accessed by user equipment devices, but can also bepart of a live performance.

The media guidance application and/or any instructions for performingany of the embodiments discussed herein may be encoded on computerreadable media. Computer readable media includes any media capable ofstoring data. The computer readable media may be transitory, including,but not limited to, propagating electrical or electromagnetic signals,or may be non-transitory including, but not limited to, volatile andnon-volatile computer memory or storage devices such as a hard disk,floppy disk, USB drive, DVD, CD, media cards, register memory, processorcaches, Random Access Memory (“RAM”), etc.

With the advent of the Internet, mobile computing, and high-speedwireless networks, users are accessing media on user equipment deviceson which they traditionally did not. As referred to herein, the phrase“user equipment device,” “user equipment,” “user device,” “electronicdevice,” “electronic equipment,” “media equipment device,” or “mediadevice” should be understood to mean any device for accessing thecontent described above, such as a television, a Smart TV, a set-topbox, an integrated receiver decoder (IRD) for handling satellitetelevision, a digital storage device, a digital media receiver (DMR), adigital media adapter (DMA), a streaming media device, a DVD player, aDVD recorder, a connected DVD, a local media server, a BLU-RAY player, aBLU-RAY recorder, a personal computer (PC), a laptop computer, a tabletcomputer, a WebTV box, a personal computer television (PC/TV), a PCmedia server, a PC media center, a hand-held computer, a stationarytelephone, a personal digital assistant (PDA), a mobile telephone, aportable video player, a portable music player, a portable gamingmachine, a smart phone, or any other television equipment, computingequipment, or wireless device, and/or combination of the same. In someembodiments, the user equipment device may have a front facing screenand a rear facing screen, multiple front screens, or multiple angledscreens. In some embodiments, the user equipment device may have a frontfacing camera and/or a rear facing camera. On these user equipmentdevices, users may be able to navigate among and locate the same contentavailable through a television. Consequently, media guidance may beavailable on these devices, as well. The guidance provided may be forcontent available only through a television, for content available onlythrough one or more of other types of user equipment devices, or forcontent available both through a television and one or more of the othertypes of user equipment devices. The media guidance applications may beprovided as on-line applications (i.e., provided on a web-site), or asstand-alone applications or clients on user equipment devices. Variousdevices and platforms that may implement media guidance applications aredescribed in more detail below.

One of the functions of the media guidance application is to providemedia guidance data to users. As referred to herein, the phrase “mediaguidance data” or “guidance data” should be understood to mean any datarelated to content or data used in operating the guidance application.For example, the guidance data may include program information, guidanceapplication settings, user preferences, user profile information, medialistings, media-related information (e.g., broadcast times, broadcastchannels, titles, descriptions, ratings information (e.g., parentalcontrol ratings, critic's ratings, etc.), genre or category information,actor information, logo data for broadcasters' or providers' logos,etc.), media format (e.g., standard definition, high definition, 3D,etc.), on-demand information, blogs, websites, and any other type ofguidance data that is helpful for a user to navigate among and locatedesired content selections.

FIGS. 3-4 show illustrative display screens that may be used to providemedia guidance data. The display screens shown in FIGS. 3-4 may beimplemented on any suitable user equipment device or platform. While thedisplays of FIGS. 3-4 are illustrated as full screen displays, they mayalso be fully or partially overlaid over content being displayed. A usermay indicate a desire to access content information by selecting aselectable option provided in a display screen (e.g., a menu option, alistings option, an icon, a hyperlink, etc.) or pressing a dedicatedbutton (e.g., a GUIDE button) on a remote control or other user inputinterface or device. In response to the user's indication, the mediaguidance application may provide a display screen with media guidancedata organized in one of several ways, such as by time and channel in agrid, by time, by channel, by source, by content type, by category(e.g., movies, sports, news, children, or other categories ofprogramming), or other predefined, user-defined, or other organizationcriteria.

FIG. 3 shows illustrative grid of a program listings display 300arranged by time and channel that also enables access to different typesof content in a single display. Display 300 may include grid 302 with:(1) a column of channel/content type identifiers 304, where eachchannel/content type identifier (which is a cell in the column)identifies a different channel or content type available; and (2) a rowof time identifiers 306, where each time identifier (which is a cell inthe row) identifies a time block of programming. Grid 302 also includescells of program listings, such as program listing 308, where eachlisting provides the title of the program provided on the listing'sassociated channel and time. With a user input device, a user can selectprogram listings by moving highlight region 310. Information relating tothe program listing selected by highlight region 310 may be provided inprogram information region 312. Region 312 may include, for example, theprogram title, the program description, the time the program is provided(if applicable), the channel the program is on (if applicable), theprogram's rating, and other desired information.

In addition to providing access to linear programming (e.g., contentthat is scheduled to be transmitted to a plurality of user equipmentdevices at a predetermined time and is provided according to aschedule), the media guidance application also provides access tonon-linear programming (e.g., content accessible to a user equipmentdevice at any time and is not provided according to a schedule).Non-linear programming may include content from different contentsources including on-demand content (e.g., VOD), Internet content (e.g.,streaming media, downloadable media, etc.), locally stored content(e.g., content stored on any user equipment device described above orother storage device), or other time-independent content. On-demandcontent may include movies or any other content provided by a particularcontent provider (e.g., HBO On Demand providing “The Sopranos” and “CurbYour Enthusiasm”). HBO ON DEMAND is a service mark owned by Time WarnerCompany L.P. et al. and THE SOPRANOS and CURB YOUR ENTHUSIASM aretrademarks owned by the Home Box Office, Inc. Internet content mayinclude web events, such as a chat session or Webcast, or contentavailable on-demand as streaming content or downloadable content throughan Internet web site or other Internet access (e.g. FTP).

Grid 302 may provide media guidance data for non-linear programmingincluding on-demand listing 314, recorded content listing 316, andInternet content listing 318. A display combining media guidance datafor content from different types of content sources is sometimesreferred to as a “mixed-media” display. Various permutations of thetypes of media guidance data that may be displayed that are differentthan display 300 may be based on user selection or guidance applicationdefinition (e.g., a display of only recorded and broadcast listings,only on-demand and broadcast listings, etc.). As illustrated, listings314, 316, and 318 are shown as spanning the entire time block displayedin grid 302 to indicate that selection of these listings may provideaccess to a display dedicated to on-demand listings, recorded listings,or Internet listings, respectively. In some embodiments, listings forthese content types may be included directly in grid 302. Additionalmedia guidance data may be displayed in response to the user selectingone of the navigational icons 320. (Pressing an arrow key on a userinput device may affect the display in a similar manner as selectingnavigational icons 320.)

Display 300 may also include video region 322, and options region 326.Video region 322 may allow the user to view and/or preview programs thatare currently available, will be available, or were available to theuser. The content of video region 322 may correspond to, or beindependent from, one of the listings displayed in grid 302. Griddisplays including a video region are sometimes referred to aspicture-in-guide (PIG) displays. PIG displays and their functionalitiesare described in greater detail in Satterfield et al. U.S. Pat. No.6,564,378, issued May 13, 2003 and Yuen et al. U.S. Pat. No. 6,239,794,issued May 29, 2001, which are hereby incorporated by reference hereinin their entireties. PIG displays may be included in other mediaguidance application display screens of the embodiments describedherein.

Options region 326 may allow the user to access different types ofcontent, media guidance application displays, and/or media guidanceapplication features. Options region 326 may be part of display 300 (andother display screens described herein), or may be invoked by a user byselecting an on-screen option or pressing a dedicated or assignablebutton on a user input device. The selectable options within optionsregion 326 may concern features related to program listings in grid 302or may include options available from a main menu display. Featuresrelated to program listings may include searching for other air times orways of receiving a program, recording a program, enabling seriesrecording of a program, setting program and/or channel as a favorite,purchasing a program, or other features. Options available from a mainmenu display may include search options, VOD options, parental controloptions, Internet options, cloud-based options, device synchronizationoptions, second screen device options, options to access various typesof media guidance data displays, options to subscribe to a premiumservice, options to edit a user's profile, options to access a browseoverlay, or other options.

The media guidance application may be personalized based on a user'spreferences. A personalized media guidance application allows a user tocustomize displays and features to create a personalized “experience”with the media guidance application. This personalized experience may becreated by allowing a user to input these customizations and/or by themedia guidance application monitoring user activity to determine varioususer preferences. Users may access their personalized guidanceapplication by logging in or otherwise identifying themselves to theguidance application. Customization of the media guidance applicationmay be made in accordance with a user profile. The customizations mayinclude varying presentation schemes (e.g., color scheme of displays,font size of text, etc.), aspects of content listings displayed (e.g.,only HDTV or only 3D programming, user-specified broadcast channelsbased on favorite channel selections, re-ordering the display ofchannels, recommended content, etc.), desired recording features (e.g.,recording or series recordings for particular users, recording quality,etc.), parental control settings, customized presentation of Internetcontent (e.g., presentation of social media content, e-mail,electronically delivered articles, etc.) and other desiredcustomizations.

The media guidance application may allow a user to provide user profileinformation or may automatically compile user profile information. Themedia guidance application may, for example, monitor the content theuser accesses and/or other interactions the user may have with theguidance application. Additionally, the media guidance application mayobtain all or part of other user profiles that are related to aparticular user (e.g., from other web sites on the Internet the useraccesses, such as www.Tivo.com, from other media guidance applicationsthe user accesses, from other interactive applications the useraccesses, from another user equipment device of the user, etc.), and/orobtain information about the user from other sources that the mediaguidance application may access. As a result, a user can be providedwith a unified guidance application experience across the user'sdifferent user equipment devices. This type of user experience isdescribed in greater detail below in connection with FIG. 6 . Additionalpersonalized media guidance application features are described ingreater detail in Ellis et al., U.S. Patent Application Publication No.2005/0251827, filed Jul. 11, 2005, Boyer et al., U.S. Pat. No.7,165,098, issued Jan. 16, 2007, and Ellis et al., U.S. PatentApplication Publication No. 2002/0174430, filed Feb. 21, 2002, which arehereby incorporated by reference herein in their entireties.

Another display arrangement for providing media guidance is shown inFIG. 4 . Video mosaic display 400 includes selectable options 402 forcontent information organized based on content type, genre, and/or otherorganization criteria. In display 400, television listings option 404 isselected, thus providing listings 406, 408, 410, and 412 as broadcastprogram listings. In display 400 the listings may provide graphicalimages including cover art, still images from the content, video clippreviews, live video from the content, or other types of content thatindicate to a user the content being described by the media guidancedata in the listing. Each of the graphical listings may also beaccompanied by text to provide further information about the contentassociated with the listing. For example, listing 408 may include morethan one portion, including media portion 414 and text portion 416.Media portion 414 and/or text portion 416 may be selectable to viewcontent in full-screen or to view information related to the contentdisplayed in media portion 414 (e.g., to view listings for the channelthat the video is displayed on).

The listings in display 400 are of different sizes (i.e., listing 406 islarger than listings 408, 410, and 412), but if desired, all thelistings may be the same size. Listings may be of different sizes orgraphically accentuated to indicate degrees of interest to the user orto emphasize certain content, as desired by the content provider orbased on user preferences. Various systems and methods for graphicallyaccentuating content listings are discussed in, for example, Yates, U.S.Patent Application Publication No. 2010/0153885, filed Nov. 12, 2009,which is hereby incorporated by reference herein in its entirety.

Users may access content and the media guidance application (and itsdisplay screens described above and below) from one or more of theiruser equipment devices. FIG. 5 shows a generalized embodiment ofillustrative user equipment device 500. More specific implementations ofuser equipment devices are discussed below in connection with FIG. 6 .User equipment device 500 may receive content and data via input/output(hereinafter “I/O”) path 502. I/O path 502 may provide content (e.g.,broadcast programming, on-demand programming, Internet content, contentavailable over a local area network (LAN) or wide area network (WAN),and/or other content) and data to control circuitry 504, which includesprocessing circuitry 506 and storage 508. Control circuitry 504 may beused to send and receive commands, requests, and other suitable datausing I/O path 502. I/O path 502 may connect control circuitry 504 (andspecifically processing circuitry 506) to one or more communicationspaths (described below). I/O functions may be provided by one or more ofthese communications paths, but are shown as a single path in FIG. 5 toavoid overcomplicating the drawing.

Control circuitry 504 may be based on any suitable processing circuitrysuch as processing circuitry 506. As referred to herein, processingcircuitry should be understood to mean circuitry based on one or moremicroprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core, or anysuitable number of cores) or supercomputer. In some embodiments,processing circuitry may be distributed across multiple separateprocessors or processing units, for example, multiple of the same typeof processing units (e.g., two Intel Core i7 processors) or multipledifferent processors (e.g., an Intel Core i5 processor and an Intel Corei7 processor). In some embodiments, control circuitry 504 executesinstructions for a media guidance application stored in memory (i.e.,storage 508). Specifically, control circuitry 504 may be instructed bythe media guidance application to perform the functions discussed aboveand below. For example, the media guidance application may provideinstructions to control circuitry 504 to generate the media guidancedisplays. In some implementations, any action performed by controlcircuitry 504 may be based on instructions received from the mediaguidance application.

In client-server based embodiments, control circuitry 504 may includecommunications circuitry suitable for communicating with a guidanceapplication server or other networks or servers. The instructions forcarrying out the above-mentioned functionality may be stored on theguidance application server. Communications circuitry may include acable modem, an integrated services digital network (ISDN) modem, adigital subscriber line (DSL) modem, a telephone modem, Ethernet card,or a wireless modem for communications with other equipment, or anyother suitable communications circuitry. Such communications may involvethe Internet or any other suitable communications networks or paths(which is described in more detail in connection with FIG. 6 ). Inaddition, communications circuitry may include circuitry that enablespeer-to-peer communication of user equipment devices, or communicationof user equipment devices in locations remote from each other (describedin more detail below).

Memory may be an electronic storage device provided as storage 508 thatis part of control circuitry 504. As referred to herein, the phrase“electronic storage device” or “storage device” should be understood tomean any device for storing electronic data, computer software, orfirmware, such as random-access memory, read-only memory, hard drives,optical drives, digital video disc (DVD) recorders, compact disc (CD)recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders,digital video recorders (DVR, sometimes called a personal videorecorder, or PVR), solid state devices, quantum storage devices, gamingconsoles, gaming media, or any other suitable fixed or removable storagedevices, and/or any combination of the same. Storage 508 may be used tostore various types of content described herein as well as mediaguidance data described above. Nonvolatile memory may also be used(e.g., to launch a boot-up routine and other instructions). Cloud-basedstorage, described in relation to FIG. 6 , may be used to supplementstorage 508 or instead of storage 508.

Control circuitry 504 may include video generating circuitry and tuningcircuitry, such as one or more analog tuners, one or more MPEG-2decoders or other digital decoding circuitry, high-definition tuners, orany other suitable tuning or video circuits or combinations of suchcircuits. Encoding circuitry (e.g., for converting over-the-air, analog,or digital signals to MPEG signals for storage) may also be provided.Control circuitry 504 may also include scaler circuitry for upconvertingand downconverting content into the preferred output format of the userequipment 500. Circuitry 504 may also include digital-to-analogconverter circuitry and analog-to-digital converter circuitry forconverting between digital and analog signals. The tuning and encodingcircuitry may be used by the user equipment device to receive and todisplay, to play, or to record content. The tuning and encodingcircuitry may also be used to receive guidance data. The circuitrydescribed herein, including for example, the tuning, video generating,encoding, decoding, encrypting, decrypting, scaler, and analog/digitalcircuitry, may be implemented using software running on one or moregeneral purpose or specialized processors. Multiple tuners may beprovided to handle simultaneous tuning functions (e.g., watch and recordfunctions, picture-in-picture (PIP) functions, multiple-tuner recording,etc.). If storage 508 is provided as a separate device from userequipment 500, the tuning and encoding circuitry (including multipletuners) may be associated with storage 508.

A user may send instructions to control circuitry 504 using user inputinterface 510. User input interface 510 may be any suitable userinterface, such as a remote control, mouse, trackball, keypad, keyboard,touch screen, touchpad, stylus input, joystick, voice recognitioninterface, or other user input interfaces. Display 512 may be providedas a stand-alone device or integrated with other elements of userequipment device 500. For example, display 512 may be a touchscreen ortouch-sensitive display. In such circumstances, user input interface 510may be integrated with or combined with display 512. Display 512 may beone or more of a monitor, a television, a liquid crystal display (LCD)for a mobile device, amorphous silicon display, low temperature polysilicon display, electronic ink display, electrophoretic display, activematrix display, electro-wetting display, electrofluidic display, cathoderay tube display, light-emitting diode display, electroluminescentdisplay, plasma display panel, high-performance addressing display,thin-film transistor display, organic light-emitting diode display,surface-conduction electron-emitter display (SED), laser television,carbon nanotubes, quantum dot display, interferometric modulatordisplay, or any other suitable equipment for displaying visual images.In some embodiments, display 512 may be HDTV-capable. In someembodiments, display 512 may be a 3D display, and the interactive mediaguidance application and any suitable content may be displayed in 3D. Avideo card or graphics card may generate the output to the display 512.The video card may offer various functions such as accelerated renderingof 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or theability to connect multiple monitors. The video card may be anyprocessing circuitry described above in relation to control circuitry504. The video card may be integrated with the control circuitry 504.Speakers 514 may be provided as integrated with other elements of userequipment device 500 or may be stand-alone units. The audio component ofvideos and other content displayed on display 512 may be played throughspeakers 514. In some embodiments, the audio may be distributed to areceiver (not shown), which processes and outputs the audio via speakers514.

The guidance application may be implemented using any suitablearchitecture. For example, it may be a stand-alone applicationwholly-implemented on user equipment device 500. In such an approach,instructions of the application are stored locally (e.g., in storage508), and data for use by the application is downloaded on a periodicbasis (e.g., from an out-of-band feed, from an Internet resource, orusing another suitable approach). Control circuitry 504 may retrieveinstructions of the application from storage 508 and process theinstructions to generate any of the displays discussed herein. Based onthe processed instructions, control circuitry 504 may determine whataction to perform when input is received from input interface 510. Forexample, movement of a cursor on a display up/down may be indicated bythe processed instructions when input interface 510 indicates that anup/down button was selected.

In some embodiments, the media guidance application is a client-serverbased application. Data for use by a thick or thin client implemented onuser equipment device 500 is retrieved on-demand by issuing requests toa server remote to the user equipment device 500. In one example of aclient-server based guidance application, control circuitry 504 runs aweb browser that interprets web pages provided by a remote server. Forexample, the remote server may store the instructions for theapplication in a storage device. The remote server may process thestored instructions using circuitry (e.g., control circuitry 504) andgenerate the displays discussed above and below. The client device mayreceive the displays generated by the remote server and may display thecontent of the displays locally on equipment device 500. This way, theprocessing of the instructions is performed remotely by the server whilethe resulting displays are provided locally on equipment device 500.Equipment device 500 may receive inputs from the user via inputinterface 510 and transmit those inputs to the remote server forprocessing and generating the corresponding displays. For example,equipment device 500 may transmit a communication to the remote serverindicating that an up/down button was selected via input interface 510.The remote server may process instructions in accordance with that inputand generate a display of the application corresponding to the input(e.g., a display that moves a cursor up/down). The generated display isthen transmitted to equipment device 500 for presentation to the user.

In some embodiments, the media guidance application is downloaded andinterpreted or otherwise run by an interpreter or virtual machine (runby control circuitry 504). In some embodiments, the guidance applicationmay be encoded in the ETV Binary Interchange Format (EBIF), received bycontrol circuitry 504 as part of a suitable feed, and interpreted by auser agent running on control circuitry 504. For example, the guidanceapplication may be an EBIF application. In some embodiments, theguidance application may be defined by a series of JAVA-based files thatare received and run by a local virtual machine or other suitablemiddleware executed by control circuitry 504. In some of suchembodiments (e.g., those employing MPEG-2 or other digital mediaencoding schemes), the guidance application may be, for example, encodedand transmitted in an MPEG-2 object carousel with the MPEG audio andvideo packets of a program.

User equipment device 500 of FIG. 5 can be implemented in system 600 ofFIG. 6 as user television equipment 602, user computer equipment 604,wireless user communications device 606, or any other type of userequipment suitable for accessing content, such as a non-portable gamingmachine. For simplicity, these devices may be referred to hereincollectively as user equipment or user equipment devices, and may besubstantially similar to user equipment devices described above. Userequipment devices, on which a media guidance application may beimplemented, may function as a standalone device or may be part of anetwork of devices. Various network configurations of devices may beimplemented and are discussed in more detail below.

A user equipment device utilizing at least some of the system featuresdescribed above in connection with FIG. 5 may not be classified solelyas user television equipment 602, user computer equipment 604, or awireless user communications device 606. For example, user televisionequipment 602 may, like some user computer equipment 604, beInternet-enabled allowing for access to Internet content, while usercomputer equipment 604 may, like some television equipment 602, includea tuner allowing for access to television programming. The mediaguidance application may have the same layout on various different typesof user equipment or may be tailored to the display capabilities of theuser equipment. For example, on user computer equipment 604, theguidance application may be provided as a web site accessed by a webbrowser. In another example, the guidance application may be scaled downfor wireless user communications devices 606.

In system 600, there is typically more than one of each type of userequipment device but only one of each is shown in FIG. 6 to avoidovercomplicating the drawing. In addition, each user may utilize morethan one type of user equipment device and also more than one of eachtype of user equipment device.

In some embodiments, a user equipment device (e.g., user televisionequipment 602, user computer equipment 604, wireless user communicationsdevice 606) may be referred to as a “second screen device.” For example,a second screen device may supplement content presented on a first userequipment device. The content presented on the second screen device maybe any suitable content that supplements the content presented on thefirst device. In some embodiments, the second screen device provides aninterface for adjusting settings and display preferences of the firstdevice. In some embodiments, the second screen device is configured forinteracting with other second screen devices or for interacting with asocial network. The second screen device can be located in the same roomas the first device, a different room from the first device but in thesame house or building, or in a different building from the firstdevice.

The user may also set various settings to maintain consistent mediaguidance application settings across in-home devices and remote devices.Settings include those described herein, as well as channel and programfavorites, programming preferences that the guidance applicationutilizes to make programming recommendations, display preferences, andother desirable guidance settings. For example, if a user sets a channelas a favorite on, for example, the web site www.Tivo.com on theirpersonal computer at their office, the same channel would appear as afavorite on the user's in-home devices (e.g., user television equipmentand user computer equipment) as well as the user's mobile devices, ifdesired. Therefore, changes made on one user equipment device can changethe guidance experience on another user equipment device, regardless ofwhether they are the same or a different type of user equipment device.In addition, the changes made may be based on settings input by a user,as well as user activity monitored by the guidance application.

The user equipment devices may be coupled to communications network 614.Namely, user television equipment 602, user computer equipment 604, andwireless user communications device 606 are coupled to communicationsnetwork 614 via communications paths 608, 610, and 612, respectively.Communications network 614 may be one or more networks including theInternet, a mobile phone network, mobile voice or data network (e.g., a4G or LTE network), cable network, public switched telephone network, orother types of communications network or combinations of communicationsnetworks. Paths 608, 610, and 612 may separately or together include oneor more communications paths, such as, a satellite path, a fiber-opticpath, a cable path, a path that supports Internet communications (e.g.,IPTV), free-space connections (e.g., for broadcast or other wirelesssignals), or any other suitable wired or wireless communications path orcombination of such paths. Path 612 is drawn with dotted lines toindicate that in the exemplary embodiment shown in FIG. 6 it is awireless path and paths 608 and 610 are drawn as solid lines to indicatethey are wired paths (although these paths may be wireless paths, ifdesired). Communications with the user equipment devices may be providedby one or more of these communications paths, but are shown as a singlepath in FIG. 6 to avoid overcomplicating the drawing.

Although communications paths are not drawn between user equipmentdevices, these devices may communicate directly with each other viacommunication paths, such as those described above in connection withpaths 608, 610, and 612, as well as other short-range point-to-pointcommunication paths, such as USB cables, IEEE 1394 cables, wirelesspaths (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or othershort-range communication via wired or wireless paths. BLUETOOTH is acertification mark owned by Bluetooth SIG, INC. The user equipmentdevices may also communicate with each other directly through anindirect path via communications network 614.

System 600 includes content source 616 and media guidance data source618 coupled to communications network 614 via communication paths 620and 622, respectively. Paths 620 and 622 may include any of thecommunication paths described above in connection with paths 608, 610,and 612. Communications with the content source 616 and media guidancedata source 618 may be exchanged over one or more communications paths,but are shown as a single path in FIG. 6 to avoid overcomplicating thedrawing. In addition, there may be more than one of each of contentsource 616 and media guidance data source 618, but only one of each isshown in FIG. 6 to avoid overcomplicating the drawing. (The differenttypes of each of these sources are discussed below.) If desired, contentsource 616 and media guidance data source 618 may be integrated as onesource device. Although communications between sources 616 and 618 withuser equipment devices 602, 604, and 606 are shown as throughcommunications network 614, in some embodiments, sources 616 and 618 maycommunicate directly with user equipment devices 602, 604, and 606 viacommunication paths (not shown) such as those described above inconnection with paths 608, 610, and 612.

Content source 616 may include one or more types of content distributionequipment including a television distribution facility, cable systemheadend, satellite distribution facility, programming sources (e.g.,television broadcasters, such as NBC, ABC, HBO, etc.), intermediatedistribution facilities and/or servers, Internet providers, on-demandmedia servers, and other content providers. NBC is a trademark owned bythe National Broadcasting Company, Inc., ABC is a trademark owned by theAmerican Broadcasting Company, Inc., and HBO is a trademark owned by theHome Box Office, Inc. Content source 616 may be the originator ofcontent (e.g., a television broadcaster, a Webcast provider, etc.) ormay not be the originator of content (e.g., an on-demand contentprovider, an Internet provider of content of broadcast programs fordownloading, etc.). Content source 616 may include cable sources,satellite providers, on-demand providers, Internet providers,over-the-top content providers, or other providers of content. Contentsource 616 may also include a remote media server used to storedifferent types of content (including video content selected by a user),in a location remote from any of the user equipment devices. Systems andmethods for remote storage of content, and providing remotely storedcontent to user equipment are discussed in greater detail in connectionwith Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, whichis hereby incorporated by reference herein in its entirety.

Media guidance data source 618 may provide media guidance data, such asthe media guidance data described above. Media guidance data may beprovided to the user equipment devices using any suitable approach. Insome embodiments, the guidance application may be a stand-aloneinteractive television program guide that receives program guide datavia a data feed (e.g., a continuous feed or trickle feed). Programschedule data and other guidance data may be provided to the userequipment on a television channel sideband, using an in-band digitalsignal, using an out-of-band digital signal, or by any other suitabledata transmission technique. Program schedule data and other mediaguidance data may be provided to user equipment on multiple analog ordigital television channels.

In some embodiments, guidance data from media guidance data source 618may be provided to users' equipment using a client-server approach. Forexample, a user equipment device may pull media guidance data from aserver, or a server may push media guidance data to a user equipmentdevice. In some embodiments, a guidance application client residing onthe user's equipment may initiate sessions with source 618 to obtainguidance data when needed, e.g., when the guidance data is out of dateor when the user equipment device receives a request from the user toreceive data. Media guidance may be provided to the user equipment withany suitable frequency (e.g., continuously, daily, a user-specifiedperiod of time, a system-specified period of time, in response to arequest from user equipment, etc.). Media guidance data source 618 mayprovide user equipment devices 602, 604, and 606 the media guidanceapplication itself or software updates for the media guidanceapplication.

In some embodiments, the media guidance data may include viewer data.For example, the viewer data may include current and/or historical useractivity information (e.g., what content the user typically watches,what times of day the user watches content, whether the user interactswith a social network, at what times the user interacts with a socialnetwork to post information, what types of content the user typicallywatches (e.g., pay TV or free TV), mood, brain activity information,etc.). The media guidance data may also include subscription data. Forexample, the subscription data may identify to which sources or servicesa given user subscribes and/or to which sources or services the givenuser has previously subscribed but later terminated access (e.g.,whether the user subscribes to premium channels, whether the user hasadded a premium level of services, whether the user has increasedInternet speed). In some embodiments, the viewer data and/or thesubscription data may identify patterns of a given user for a period ofmore than one year. The media guidance data may include a model (e.g., asurvivor model) used for generating a score that indicates a likelihooda given user will terminate access to a service/source. For example, themedia guidance application may process the viewer data with thesubscription data using the model to generate a value or score thatindicates a likelihood of whether the given user will terminate accessto a particular service or source. In particular, a higher score mayindicate a higher level of confidence that the user will terminateaccess to a particular service or source. Based on the score, the mediaguidance application may generate promotions that entice the user tokeep the particular service or source indicated by the score as one towhich the user will likely terminate access.

Media guidance applications may be, for example, stand-aloneapplications implemented on user equipment devices. For example, themedia guidance application may be implemented as software or a set ofexecutable instructions which may be stored in storage 508, and executedby control circuitry 504 of a user equipment device 500. In someembodiments, media guidance applications may be client-serverapplications where only a client application resides on the userequipment device, and server application resides on a remote server. Forexample, media guidance applications may be implemented partially as aclient application on control circuitry 504 of user equipment device 500and partially on a remote server as a server application (e.g., mediaguidance data source 618) running on control circuitry of the remoteserver. When executed by control circuitry of the remote server (such asmedia guidance data source 618), the media guidance application mayinstruct the control circuitry to generate the guidance applicationdisplays and transmit the generated displays to the user equipmentdevices. The server application may instruct the control circuitry ofthe media guidance data source 618 to transmit data for storage on theuser equipment. The client application may instruct control circuitry ofthe receiving user equipment to generate the guidance applicationdisplays.

Content and/or media guidance data delivered to user equipment devices602, 604, and 606 may be over-the-top (OTT) content. OTT contentdelivery allows Internet-enabled user devices, including any userequipment device described above, to receive content that is transferredover the Internet, including any content described above, in addition tocontent received over cable or satellite connections. OTT content isdelivered via an Internet connection provided by an Internet serviceprovider (ISP), but a third party distributes the content. The ISP maynot be responsible for the viewing abilities, copyrights, orredistribution of the content, and may only transfer IP packets providedby the OTT content provider. Examples of OTT content providers includeYOUTUBE, NETFLIX, and HULU, which provide audio and video via IPpackets. Youtube is a trademark owned by Google Inc., Netflix is atrademark owned by Netflix Inc., and Hulu is a trademark owned by Hulu,LLC. OTT content providers may additionally or alternatively providemedia guidance data described above. In addition to content and/or mediaguidance data, providers of OTT content can distribute media guidanceapplications (e.g., web-based applications or cloud-based applications),or the content can be displayed by media guidance applications stored onthe user equipment device.

Media guidance system 600 is intended to illustrate a number ofapproaches, or network configurations, by which user equipment devicesand sources of content and guidance data may communicate with each otherfor the purpose of accessing content and providing media guidance. Theembodiments described herein may be applied in any one or a subset ofthese approaches, or in a system employing other approaches fordelivering content and providing media guidance. The following fourapproaches provide specific illustrations of the generalized example ofFIG. 6 .

In one approach, user equipment devices may communicate with each otherwithin a home network. User equipment devices can communicate with eachother directly via short-range point-to-point communication schemesdescribed above, via indirect paths through a hub or other similardevice provided on a home network, or via communications network 614.Each of the multiple individuals in a single home may operate differentuser equipment devices on the home network. As a result, it may bedesirable for various media guidance information or settings to becommunicated between the different user equipment devices. For example,it may be desirable for users to maintain consistent media guidanceapplication settings on different user equipment devices within a homenetwork, as described in greater detail in Ellis et al., U.S. PatentPublication No. 2005/0251827, filed Jul. 11, 2005. Different types ofuser equipment devices in a home network may also communicate with eachother to transmit content. For example, a user may transmit content fromuser computer equipment to a portable video player or portable musicplayer.

In a second approach, users may have multiple types of user equipment bywhich they access content and obtain media guidance. For example, someusers may have home networks that are accessed by in-home and mobiledevices. Users may control in-home devices via a media guidanceapplication implemented on a remote device. For example, users mayaccess an online media guidance application on a website via a personalcomputer at their office, or a mobile device such as a PDA orweb-enabled mobile telephone. The user may set various settings (e.g.,recordings, reminders, or other settings) on the online guidanceapplication to control the user's in-home equipment. The online guidemay control the user's equipment directly, or by communicating with amedia guidance application on the user's in-home equipment. Varioussystems and methods for user equipment devices communicating, where theuser equipment devices are in locations remote from each other, isdiscussed in, for example, Ellis et al., U.S. Pat. No. 8,046,801, issuedOct. 25, 2011, which is hereby incorporated by reference herein in itsentirety.

In a third approach, users of user equipment devices inside and outsidea home can use their media guidance application to communicate directlywith content source 616 to access content. Specifically, within a home,users of user television equipment 602 and user computer equipment 604may access the media guidance application to navigate among and locatedesirable content. Users may also access the media guidance applicationoutside of the home using wireless user communications devices 606 tonavigate among and locate desirable content.

In a fourth approach, user equipment devices may operate in a cloudcomputing environment to access cloud services. In a cloud computingenvironment, various types of computing services for content sharing,storage or distribution (e.g., video sharing sites or social networkingsites) are provided by a collection of network-accessible computing andstorage resources, referred to as “the cloud.” For example, the cloudcan include a collection of server computing devices, which may belocated centrally or at distributed locations, that provide cloud-basedservices to various types of users and devices connected via a networksuch as the Internet via communications network 614. These cloudresources may include one or more content sources 616 and one or moremedia guidance data sources 618. In addition or in the alternative, theremote computing sites may include other user equipment devices, such asuser television equipment 602, user computer equipment 604, and wirelessuser communications device 606. For example, the other user equipmentdevices may provide access to a stored copy of a video or a streamedvideo. In such embodiments, user equipment devices may operate in apeer-to-peer manner without communicating with a central server.

The cloud provides access to services, such as content storage, contentsharing, or social networking services, among other examples, as well asaccess to any content described above, for user equipment devices.Services can be provided in the cloud through cloud computing serviceproviders, or through other providers of online services. For example,the cloud-based services can include a content storage service, acontent sharing site, a social networking site, or other services viawhich user-sourced content is distributed for viewing by others onconnected devices. These cloud-based services may allow a user equipmentdevice to store content to the cloud and to receive content from thecloud rather than storing content locally and accessing locally-storedcontent.

A user may use various content capture devices, such as camcorders,digital cameras with video mode, audio recorders, mobile phones, andhandheld computing devices, to record content. The user can uploadcontent to a content storage service on the cloud either directly, forexample, from user computer equipment 604 or wireless usercommunications device 606 having content capture feature. Alternatively,the user can first transfer the content to a user equipment device, suchas user computer equipment 604. The user equipment device storing thecontent uploads the content to the cloud using a data transmissionservice on communications network 614. In some embodiments, the userequipment device itself is a cloud resource, and other user equipmentdevices can access the content directly from the user equipment deviceon which the user stored the content.

Cloud resources may be accessed by a user equipment device using, forexample, a web browser, a media guidance application, a desktopapplication, a mobile application, and/or any combination of accessapplications of the same. The user equipment device may be a cloudclient that relies on cloud computing for application delivery, or theuser equipment device may have some functionality without access tocloud resources. For example, some applications running on the userequipment device may be cloud applications, i.e., applications deliveredas a service over the Internet, while other applications may be storedand run on the user equipment device. In some embodiments, a user devicemay receive content from multiple cloud resources simultaneously. Forexample, a user device can stream audio from one cloud resource whiledownloading content from a second cloud resource. Or a user device candownload content from multiple cloud resources for more efficientdownloading. In some embodiments, user equipment devices can use cloudresources for processing operations such as the processing operationsperformed by processing circuitry described in relation to FIG. 5 .

As referred herein, the term “in response to” refers to initiated as aresult of. For example, a first action being performed in response to asecond action may include interstitial steps between the first actionand the second action. As referred herein, the term “directly inresponse to” refers to caused by. For example, a first action beingperformed directly in response to a second action may not includeinterstitial steps between the first action and the second action.

FIG. 7 is a flowchart of an illustrative process for creating anon-curated viewing perspective in a video game platform based on acurated viewing perspective, in accordance with some embodiments of thedisclosure. It should be noted that process 700 or any step thereofcould be performed on, or provided by, any of the devices shown in FIGS.5-6 . For example, process 700 may be executed by control circuitry 504(FIG. 5 ) as instructed by a media guidance application implemented on auser device (e.g., user equipment devices 602, 604, and/or 606 (FIG. 6)) in order to create a non-curated viewing perspective in a video gameplatform based on a curated viewing perspective. In addition, one ormore steps of process 700 may be incorporated into or combined with oneor more steps of any other process or embodiment (e.g., as described inrelation to FIGS. 1-2 and 8-16 ).

At step 702, control circuitry 504 (FIG. 5 ) receives (e.g., via I/OPath 502 (FIG. 5 )) a first stream of video contents that is depictedusing a curated viewing perspective of a video game environment that issimultaneously transmitted to a plurality of user equipment. Forexample, the first stream of video contents may be of a video gametournament and may showcase the gameplay of two or more competitors.Suppose the video game tournament being broadcasted is related to sportsvideo games; specifically, two competitors may be facing each other in avideo game tennis match. The video game environment is created by fullyrendering a video game on a video game console (e.g., PlayStation 4,Xbox One, PC, etc.). In particular, the video game environment refers tothe rendered content of the video game (e.g., game objects, scenes,character models, game mechanics, etc.). The curated viewing perspectivemay comprise a camera angle and an in-game viewing position that one ofthe competitors is viewing the video game from, such that theperspective of the competitor is the same as the curated viewingperspective. The curated viewing perspective is locked to the firststream's camera cuts. Therefore, if the first stream depicts thegameplay from the perspective of the first competitor at a time t1 andthen cuts to the gameplay from the perspective of a second competitor ata time t2, the curated viewing perspective too changes to theperspective of the second competitor (e.g., to display what the secondcompetitor sees on his/her screen while playing the video game).

At step 704, control circuitry 504 (FIG. 5 ) receives (e.g., via I/OPath 502 (FIG. 5 )) video game engine data simultaneously with the firststream. The video game engine data refers to all information that isneeded to render the content of the video game. This information mayinclude code, datasets, graphics, audio, etc. In some embodiments, thevideo game engine data may include the input video game commands made bythe competitors. For example, suppose the competitor began playing thevideo game at time t1. At time t2, the competitor may have entered acommand (e.g., pressed a button on a controller, made a gesture, gave averbal cue, etc.) into the video game console in order to swing a racketheld by a virtual tennis player in a video game. Accordingly, the videogame engine data received by control circuitry 504 may include thecommand information such as the game object the user was controlling,the command given, and a timestamp of when the command was given.

At step 706, control circuitry 504 (FIG. 5 ) processes the video gameengine data to generate a second stream comprising a replication of thevideo contents that is viewable within a video game platform thatsupports the video game engine data. The video game platform refers to avirtual sandbox that control circuitry 504 populates using the videogame engine data to recreate the video game shown in the first stream.The video game platform may be an actual video game console (e.g.,PlayStation 4, Xbox One, PC, etc.) or an emulator that can imitate thefunctionality of a video game console. Control circuitry 504 may use thevideo game engine data to identify the game objects rendered in thevideo game the competitors are playing, and the commands the competitorsare entering during gameplay. Using this video game engine data, controlcircuitry 504 may generate the video game in the video game platform andexecute the commands entered by the competitors in real-time, thuscreating a second stream that replicates the video contents of the firststream.

At step 708, control circuitry 504 (FIG. 5 ) generates for display thevideo contents within the video game platform using the curated viewingperspective. The video contents of the second stream, unlike the firststream, are based in the video game platform. Therefore, the secondstream is not simply a video and the user can interact with the secondstream via I/O Path 502 (FIG. 5 ) through user commands.

At step 710, control circuitry 504 (FIG. 5 ) receives input from theuser (e.g., via I/O Path 502) requesting to view the video contents froma non-curated viewing perspective. For example, the user may move avirtual cursor in the second stream to an arbitrary spot of the virtualenvironment depicted in the second stream (e.g., on the virtual tenniscourt) and select a viewing position. The viewing position alongside thecamera angle associated with the viewing position represent thenon-curated viewing perspective.

At step 712, control circuitry 504 (FIG. 5 ) generates for display,using the video game engine data, the viewing contents from thenon-curated viewing perspective. For example, control circuitry 504 maychange the virtual position of the user and the camera angle accordingto the requested non-curated viewing perspective. Using the video gameengine data, control circuitry 504 may re-render all game objects,audio, graphics and virtual environments associated with the firststream with respect to the user's new virtual position. This allows theuser to view the gameplay of the competitor from a different perspective(e.g., the non-curated perspective).

It is contemplated that the steps or descriptions of FIG. 7 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 7 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 7 .

FIG. 8 is a flowchart of a detailed illustrative process for creating anon-curated viewing perspective in a video game platform based on acurated viewing perspective, in accordance with some embodiments of thedisclosure. It should be noted that process 800 or any step thereofcould be performed on, or provided by, any of the devices shown in FIGS.5-6 . For example, process 800 may be executed by control circuitry 504(FIG. 5 ) as instructed by a media guidance application implemented on auser device (e.g., user equipment devices 602, 604, and/or 606 (FIG. 6)) in order to create a non-curated viewing perspective in a video gameplatform based on a curated viewing perspective. In addition, one ormore steps of process 800 may be incorporated into or combined with oneor more steps of any other process or embodiment (e.g., as described inrelation to FIGS. 1-2, 7 and 9-16 ).

At step 802, control circuitry 504 (FIG. 5 ) receives, at user equipment(e.g., via I/O Path 502 (FIG. 5 )), a first stream of video contentsthat is depicted using a curated viewing perspective of a video gameenvironment that is simultaneously transmitted to a plurality of userequipment. The source of the first stream may be the media contentsource 616 (FIG. 6 ). The first stream of video contents may be anyvideo that is depicting video game gameplay. For example, the firststream may be a video sent to the user, a video uploaded to a streamingwebsite such as YouTube (e.g., “let's play format”), or an in-gametutorial. Suppose the user is viewing a live stream video of gameplay ofa tennis simulation game such as “Tennis World Tour 2018” on a streamingwebsite such as YouTube. The first stream may depict the video gameenvironment as rendered by a video game console such as the PlayStation4. The rendered content that makes up the video game environment mayinclude game objects such as player models, the tennis stadium, thecourt, the net, the ball, etc. The video game environment may includevisible game mechanics (e.g., the movement of the characters and theball). The curated viewing perspective may comprise a camera angle andan in-game viewing position. Traditionally in tennis simulation games,the in-game position is an elevated position behind a first tennisplayer that allows the camera angle to capture the entire court and thesecond tennis player on the opposite side.

At step 804, control circuitry 504 (FIG. 5 ) receives (e.g., via I/OPath 502 (FIG. 5 )) video game engine data simultaneously with the firststream (e.g., from the media guidance data source 618 (FIG. 6 )). Thevideo game engine data refers to all information that is needed torender the content of the video game. This information may include code,datasets, graphics, audio, etc. In addition, the video game engine datamay include information about the game such as the title, genre, creatornames, developer names, game format, release date, etc. In someembodiments, the video game engine data may include the input video gamecommands that were executed to create the video game gameplay depictedin the first stream. For example, alongside the live stream video ofgameplay on YouTube, the user may simultaneously receive at userequipment, a downloadable metadata file comprising of video game enginedata which includes real-time executed commands (e.g., in order to havea virtual tennis player move around the court and hit the ball). In someembodiments, the video game engine data may be stored in storage 508(FIG. 5 ).

At step 806, control circuitry 504 (FIG. 5 ) determines a video gameassociated with the video game environment and the video game enginedata. For example, control circuitry 504 may determine from the videogame engine data, that the name of the video game associated with thevideo game environment is “Tennis World Tour 2018.” In the case that thevideo game engine data does not include the name of the video game,control circuitry 504 may screen capture a frame of the first streamdepicting the video game environment and may apply imaging processes(e.g., coefficient of correlation calculation, and keypoint comparisons)to compare with gameplay images on the Internet or in a video game imagedatabase stored in storage 508 (FIG. 8 ). In response to determining amatch (e.g., using correlation techniques) to an image on the Internetor in the video game image database, control circuitry 504 may determinethe name of the video game the matched image is associated with. Forexample, the video game image database may store several images ofgameplay for a plurality of video games and group each image based onthe name of the video game.

At step 808, control circuitry 504 (FIG. 5 ) determines the video gameplatform that supports the video game engine data associated with thevideo game. The video game platform refers to a virtual sandbox thatcontrol circuitry 504 populates using the video game engine data torecreate the video game shown in the first stream. The video gameplatform may be an actual video game console (e.g., PlayStation 4, XboxOne, PC, etc.) or an emulator that can imitate the functionality of avideo game console. The emulator may be stored in storage 508 (FIG. 5 ).Based on the video game engine data or the metadata of the first stream,both of which may include information about the video game console usedin gameplay, control circuitry 504 may identify a compatible emulator orvideo game console as the video game platform.

At step 810, control circuitry 504 (FIG. 5 ) determines whether thevideo game and the video game platform are accessible to the userequipment. For example, control circuitry 504 may refer to the userprofile in storage 508 (FIG. 5 ) to determine whether the user hasaccess to the video game console and/or the video game. Suppose that thelive stream the user is watching features the game “Tennis World Tour2018” as played on the PlayStation 4. Based on the user profile, controlcircuitry 504 may determine that the user equipment has access to boththe PlayStation 4 and “Tennis World Tour 2018.” In response, the processproceeds to step 812. In some cases, the video game engine data may becompatible with multiple video game consoles. For example, a game suchas “Tennis World Tour 2018” is compatible with the PlayStation 4 and theXbox One. Even if the user does not have access to the PlayStation 4,control circuitry 504 may determine that the user equipment has accessto the Xbox One and an alternate version of “Tennis World Tour 2018”compatible with the Xbox One. In response, the process proceeds to step812. In some embodiments, control circuitry 504 may determine that theuser equipment has access to an emulator on a video game platform (e.g.,a personal computer). The emulator may be able to emulate thefunctionality of the PlayStation 4. In addition, control circuitry 504may determine that the user equipment has access to an alternate versionof “Tennis World Tour 2018” that is compatible with the emulator. Inresponse, the process may proceed to step 812.

In response to determining that the video game and the video gameplatform are not accessible to the user equipment, the process proceedsto step 814 where control circuitry 504 generates for display the firststream of video contents that is depicted using the curated viewingperspective. In this embodiment, control circuitry 504 may determinethat the user equipment does not have resources (e.g., the video gameand/or the video game platform) to replicate, in the video gameplatform, the video contents of the first stream. In some embodiments,control circuitry 504 may generate for display an option to purchase orrent a version of the video game and/or the video game platform. In someembodiments, control circuitry 504 may refer to the user profile instorage 508 (FIG. 5 ) to identify a friend associated with the user whohas access to the video game and/or the video game platform (e.g., viasocial media). In response, control circuitry 504 may generate fordisplay an option for the user to request to borrow the video gameand/or the video game platform from the user's friend. If the useraccepts the option, control circuitry 504 may send a request for thevideo game and/or the video game platform to the user's friend. If theuser's friend accepts, control circuitry 504 may retrieve the video gameand/or an emulator associated with the video game platform. The processthen proceeds to step 812.

At step 812, control circuitry 504 (FIG. 5 ) processes the video gameengine data to generate a second stream comprising a replication of thevideo contents that is viewable within a video game platform. Controlcircuitry 504 may use the video game engine data to identify the gameobjects rendered in the video game environment, as depicted in the firststream. For example, the video game engine data may provide apredetermined list of game objects, graphics, positions, mechanics andaudio associated with each frame of the first stream. If the video gameengine data does not provide this information for each frame of thefirst stream, control circuitry 504 may utilize objection recognition toidentify objects in the first stream and compare them to the video gameengine data. For example, control circuitry 504 may identify a tennisball in a frame of the first stream. In response, control circuitry 504may search for the term “tennis ball” in the video game engine data todetermine the code, graphics and mechanics associated with a game object“tennis ball.” Control circuitry 504 may then utilize this informationto render the game object “tennis ball” in the video game platform. Thisprocess is discussed in-depth in FIGS. 13-14 . Control circuitry 504 mayrepeat this process until for all identified objects from the firststream.

At step 816, control circuitry 504 (FIG. 5 ) generates for display(e.g., on display 512 (FIG. 5 ) the video contents within the video gameplatform using the curated viewing perspective. The video contents ofthe second stream, unlike the first stream, are based in the video gameplatform. Therefore, the second stream is not simply a video and theuser can interact with the second stream via I/O Path 502 (FIG. 5 )through user commands.

At step 818, control circuitry 504 (FIG. 5 ) receives input at the userequipment (e.g., via I/O Path 502) requesting to view the video contentsfrom a non-curated viewing perspective. Control circuitry 504 maygenerate for display a cursor that allows the user to interact with thevirtual environment in the video game platform. For example, the cursormay be movable within the virtual boundaries as dictated by the videogame engine data. As discussed previously, suppose that the curatedviewing perspective is associated with an in-game position at anelevated spot behind a first tennis player. The in-game position may behigh enough to allow the camera angle to capture the entire court andthe second tennis player on the opposite side. Control circuitry 504 mayreceive a user selection of an arbitrary position, highlighted by thecursor, in the virtual environment (e.g., on the virtual tennis court).Suppose that the selected position is in the audience (e.g., as depictedin second stream 210 (FIG. 2 )).

At step 820, control circuitry 504 (FIG. 5 ) generates for display,using the video game engine data, the viewing contents from thenon-curated viewing perspective. For example, control circuitry 504 maychange the virtual position of the user and the camera angle based onthe requested non-curated viewing perspective. Using the video gameengine data, control circuitry 504 may re-render all game objects,audio, graphics and virtual environments associated with the firststream at a new set of positions with respect to the user's new virtualposition. This allows the user to view the gameplay from a differentperspective (e.g., the non-curated perspective). This process is furtherdiscussed in FIGS. 9-10 .

It is contemplated that the steps or descriptions of FIG. 8 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 8 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 8 .

FIG. 9 is a flowchart of an illustrative process for generating thenon-curated perspective by shifting the game coordinates associated withthe game objects, in accordance with some embodiments of the disclosure.It should be noted that process 900 or any step thereof could beperformed on, or provided by, any of the devices shown in FIGS. 5-6 .For example, process 900 may be executed by control circuitry 504 (FIG.5 ) as instructed by a media guidance application implemented on a userdevice (e.g., user equipment devices 602, 604, and/or 606 (FIG. 6 )) inorder to generate the non-curated perspective by shifting the gamecoordinates associated with the game objects. In addition, one or moresteps of process 900 may be incorporated into or combined with one ormore steps of any other process or embodiment (e.g., as described inrelation to FIGS. 1-2, 7-8 and 10-16 ).

At step 902, control circuitry 504 (FIG. 5 ) receives (e.g., via I/OPath 502 (FIG. 5 ), at the user equipment, a user-selected virtualviewing position in the video game platform of the second stream. Asdiscussed previously, control circuitry 504 may generate a virtualcursor that points to a game coordinate in the virtual game space. Thevirtual game space represents the dimensional space used for mappinglocations of various game objects. For example, if the virtual gamespace is three-dimensional (e.g., such as in Tennis World Tour 2018),game objects within the virtual game space will have three coordinates(e.g., an x-coordinate, y-coordinate, and z-coordinate). If the virtualgame space is two-dimensional (e.g., such as in Super Mario World), gameobjects within the virtual game space will have two coordinates (e.g.,an x-coordinate and y-coordinate). Through I/O Path 502, the user maymove the virtual cursor to any arbitrary position in the virtual gamespace. For example, given that Tennis World Tour 2018 is athree-dimensional game, control circuitry 504 may receive auser-selected virtual viewing position when the user shifts the virtualcursor to the coordinates (4, 5, 2). These coordinates may be inarbitrary units (e.g., meters, inches, pixels, etc.). It is possiblethat there are no game objects in that position, or a game object suchas the net, a player, an audience member, the floor, etc., arepositioned at the user-selected virtual viewing position.

At step 904, control circuitry 504 (FIG. 5 ) identifies a virtual gamespace, a set of game objects, and a set of game coordinates ofrespective games objects in the set of game objects, associated with thecurated viewing perspective. For example, the curated viewingperspective may be associated with a position at the coordinates (0, 0,0). Suppose that at this position, the viewer of the first stream seesstream 102 (FIG. 1 ). Control circuitry 504 may identify the virtualgame space and the set of game objects. This identification process isfurther discussed in FIG. 13-14 . For example, control circuitry 504 maydetermine that the virtual game space is a three-dimensional space andthe set of game objects include tennis player one, tennis player two,racket one, racket two, tennis ball, tennis net, grain of clay on floor,etc. Furthermore, control circuitry 504 may identify the gamecoordinates associated with each game object. For example, the point atthe center of tennis player one may be at the position (10, −15, 20)with respect to the position associated with the curated viewingperspective. These numbers signify that tennis player one is 10 units tothe right, 15 units below and 20 units ahead of the position (0, 0, 0).

At step 906, control circuitry 504 (FIG. 5 ) determines a curatedvirtual viewing position associated with the curated viewingperspective. As discussed previously, the curated virtual viewingposition is the position (0, 0, 0) associated with the curated viewingperspective. Control circuitry 504 may determine this position based onthe video game engine data, or approximate the position by recreatingthe video game environment in the second stream and adjusting thecurated virtual viewing position until the second stream's displaymatches the first stream's display (e.g., performing image processing tomatch the second stream's viewing perspective with stream 102 (FIG. 1)). In the latter, control circuitry 504 may capture a screenshot ofboth streams and determine the differences. Control circuitry 504 maythen adjust the curated virtual viewing position until the differencebetween the respective stream screenshots are minimized.

At step 908, control circuitry 504 (FIG. 5 ) determines a virtualdisplacement between the user-selected virtual viewing position and thecurated virtual viewing position. For example, if the user-selectedvirtual viewing position is (4, 5, 2) and the curated virtual viewingposition is (0, 0, 0), then the virtual displacement between the twopoints is (4, 5, 2) (e.g., the difference between each respectivecoordinate of the two positions). It should be noted that thedisplacement is associated with a vector that points to theuser-selected virtual viewing position.

At step 910, control circuitry 504 (FIG. 5 ) shifts each game coordinateof the set of game coordinates by the virtual displacement. For example,the position of tennis player one is originally (10, −15, 20) withrespect to the curated virtual viewing position. Upon shifting theposition by the virtual displacement, the new position becomes (6, −20,18). The position of the user thus remains stationary. However, all gameobjects and their respective positions are shifted by the virtualdisplacement.

At step 912, in response to the shifting, control circuitry 504 (FIG. 5) renders the virtual game space and the set of game objects at the setof game coordinates. For example, once all game objects have beenshifted based on the virtual displacement, control circuitry 504 mayreload the virtual game space such that the user views the second streamfrom the user-selected virtual viewing position. The rendering processis further discussed in FIG. 13-14 .

It is contemplated that the steps or descriptions of FIG. 9 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 9 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 9 .

FIG. 10 is a flowchart of an illustrative process for generating thenon-curated perspective by shifting the virtual viewing position of theuser, in accordance with some embodiments of the disclosure. It shouldbe noted that process 1000 or any step thereof could be performed on, orprovided by, any of the devices shown in FIGS. 5-6 . For example,process 1000 may be executed by control circuitry 504 (FIG. 5 ) asinstructed by a media guidance application implemented on a user device(e.g., user equipment devices 602, 604, and/or 606 (FIG. 6 )) in orderto generate the non-curated perspective by shifting the virtual viewingposition of the user. In addition, one or more steps of process 1000 maybe incorporated into or combined with one or more steps of any otherprocess or embodiment (e.g., as described in relation to FIGS. 1-2, 7-9and 11-16 ).

At step 1002, control circuitry 504 (FIG. 5 ) receives (e.g., via I/OPath 502 (FIG. 5 ), at the user equipment, a user-selected virtualviewing position in the video game platform of the second stream. Asdiscussed previously, control circuitry 504 may generate a virtualcursor that points to a game coordinate in the virtual game space. Thevirtual game space represents the dimensional space used for mappinglocations of various game objects. For example, if the virtual gamespace is three-dimensional (e.g., such as in Tennis World Tour 2018),game objects within the virtual game space will have three coordinates(e.g., an x-coordinate, y-coordinate, and z-coordinate). If the virtualgame space is two-dimensional (e.g., such as in Super Mario World), gameobjects within the virtual game space will have two coordinates (e.g.,an x-coordinate and y-coordinate). Through I/O Path 502, the user maymove the virtual cursor to any arbitrary position in the virtual gamespace. For example, given that Tennis World Tour 2018 is athree-dimensional game, control circuitry 504 may receive auser-selected virtual viewing position when the user shifts the virtualcursor to the coordinates (4, 5, 2). These coordinates may be inarbitrary units (e.g., meters, inches, pixels, etc.). It is possiblethat there are no game objects in that position, or a game object suchas the net, a player, an audience member, the floor, etc., arepositioned at the user-selected virtual viewing position.

At step 1004, control circuitry 504 (FIG. 5 ) identifies a virtual gamespace, a set of game objects, and a set of game coordinates ofrespective games objects in the set of game objects, associated with thecurated viewing perspective. For example, the curated viewingperspective may be associated with a position at the coordinates (0, 0,0). Suppose that at this position, the viewer of the first stream seesstream 102 (FIG. 1 ). Control circuitry 504 may identify the virtualgame space and the set of game objects. This identification process isfurther discussed in FIG. 13-14 . For example, control circuitry 504 maydetermine that the virtual game space is a three-dimensional space andthe set of game objects include tennis player one, tennis player two,racket one, racket two, tennis ball, tennis net, grain of clay on floor,etc. Furthermore, control circuitry 504 may identify the gamecoordinates associated with each game object. For example, the point atthe center of tennis player one may be at the position (10, −15, 20)with respect to the position associated with the curated viewingperspective. These numbers signify that tennis player one is 10 units tothe right, 15 units below and 20 units ahead of the position (0, 0, 0).

At step 1006, control circuitry 504 (FIG. 5 ) renders the virtual gamespace and the set of game objects at the set of game coordinates.Control circuitry 504 may load the virtual game space such that the userviews the second stream from the user-selected virtual viewing positionin the video game platform. The rendering process is further discussedin FIG. 13-14 .

At step 1008, control circuitry 504 (FIG. 5 ) determines a curatedvirtual viewing position associated with the curated viewingperspective. As discussed previously, the curated virtual viewingposition is the position (0, 0, 0) associated with the curated viewingperspective. Control circuitry 504 may determine this position based onthe video game engine data, or approximate the position by recreatingthe video game environment in the second stream and adjusting thecurated virtual viewing position until the second stream's displaymatches the first stream's display (e.g., performing image processing tomatch the second stream's viewing perspective with stream 102 (FIG. 1)). In the latter, control circuitry 504 may capture a screenshot ofboth streams and determine the differences. Control circuitry 504 maythen adjust the curated virtual viewing position until the differencebetween the respective stream screenshots are minimized.

At step 1010, control circuitry 504 (FIG. 5 ) determines a virtualdisplacement between the user-selected virtual viewing position and thecurated virtual viewing position. For example, if the user-selectedvirtual viewing position is (4, 5, 2) and the curated virtual viewingposition is (0, 0, 0), then the virtual displacement between the twopoints is (4, 5, 2) (e.g., the difference between each respectivecoordinate of the two positions). It should be noted that thedisplacement is associated with a vector that points to theuser-selected virtual viewing position.

At step 1012, control circuitry 504 (FIG. 5 ) shifts a virtual viewingposition of the user by the virtual displacement to the user-selectedvirtual viewing position. For example, the position of the user isoriginally (0, 0, 0) based on the curated virtual viewing position. Uponshifting the virtual viewing position by the virtual displacement, thenew position becomes (4, 5, 2). The position of the game objects thusremains stationary.

It is contemplated that the steps or descriptions of FIG. 10 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 10 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 10 .

FIG. 11 is a flowchart of an illustrative process for determining thevideo game associated with the video game environment and the video gameengine data, in accordance with some embodiments of the disclosure. Itshould be noted that process 1100 or any step thereof could be performedon, or provided by, any of the devices shown in FIGS. 5-6 . For example,process 1100 may be executed by control circuitry 504 (FIG. 5 ) asinstructed by a media guidance application implemented on a user device(e.g., user equipment devices 602, 604, and/or 606 (FIG. 6 )) in orderto determine the video game associated with the video game environmentand the video game engine data. In addition, one or more steps ofprocess 1100 may be incorporated into or combined with one or more stepsof any other process or embodiment (e.g., as described in relation toFIGS. 1-2, 7-10 and 12-16 ).

At step 1102, control circuitry 504 (FIG. 5 ) retrieves a firstidentifier associated with the video game environment and a secondidentifier associated with the video game engine data. The firstidentifier and second identifier may be metadata such as a keyword, animage, a title, an audio clip, a game object, code, etc.

At step 1104, control circuitry 504 (FIG. 5 ) searches a video gamedatabase comprised of metadata associated with a plurality of videogames, for an entry of the video game that is associated with both thefirst identifier and the second identifier. The video game database maybe found in storage 508 (FIG. 5 ) or a remote server connected tocontrol circuitry 504 via communication network 614 (FIG. 6 ).Furthermore, the video game database may include entries of variousvideo games. For each entry, the video game database may includemetadata such as title, developer, release date, genre, associatedcharacters, graphics, audio clips, and game code. For example, controlcircuitry 504 may search for the first and second identifiers, which maybe a screenshot and a title respectively. Control circuitry 504 mayperform image processing, sound processing or textual comparisons toidentify metadata in the video game database that correspond to thefirst and second identifiers. In some embodiments, control circuitry 504may compare the correspondence, which may be a quantitative or aqualitative value, to a predetermined threshold. If the correspondencebetween the metadata and at least one of the first identifier or secondidentifier is greater than or equal to the threshold, control circuitry504 may determine that the first and second identifiers correspond tothe metadata for a particular entry of a video game. In someembodiments, the threshold may vary based on the metadata that is beingcompared. For example, an audio sample comparison may be associated witha threshold at 80% (e.g., the samples being compared should have atleast an 80% correlation), whereas a textual comparison of a game titlemay be associated with a threshold at 100% (e.g., the titles need tomatch exactly).

At step 1106, control circuitry 504 (FIG. 5 ) determines the video gameassociated with the video game environment and the video game enginedata, based on the entry of the video game. For example, in response todetermining that the first identifier and the second identifier (e.g.,the screenshot and the title, respectively) match the metadata of anentry in the video game database. Control circuitry 504 may identify thename of the entry and thus determine the video game associated with thevideo game environment and the video game engine data.

It is contemplated that the steps or descriptions of FIG. 11 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 11 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 11 .

FIG. 12 is a flowchart of an illustrative process for generating thesecond stream based on the set of game data, in accordance with someembodiments of the disclosure. It should be noted that process 1200 orany step thereof could be performed on, or provided by, any of thedevices shown in FIGS. 5-6 . For example, process 1200 may be executedby control circuitry 504 (FIG. 5 ) as instructed by a media guidanceapplication implemented on a user device (e.g., user equipment devices602, 604, and/or 606 (FIG. 6 )) in order to generate the second streambased on the set of game data. In addition, one or more steps of process1200 may be incorporated into or combined with one or more steps of anyother process or embodiment (e.g., as described in relation to FIGS.1-2, 7-11 and 13-16 ).

At step 1202, control circuitry 504 (FIG. 5 ) captures a fingerprint ofthe video contents of the first stream. The fingerprint of the videocontents may be an image capture of a set of frames of the videocontents. The fingerprint may include an audio clip associated with theset of frames. The fingerprint may also take include input video gamecommands associated with the gameplay in the set of frames. As discussedpreviously, these input video game commands may be retrieved from thevideo game engine data.

At step 1204, control circuitry 504 (FIG. 5 ) determines a set ofcharacteristics associated with the fingerprint. For example, controlcircuitry 504 may use object recognition to identify objects in the setof frames. These objects may include the tennis players, the court, thenet, the tennis ball, etc. Control circuitry 504 may also perform soundrecognition to isolate various sounds in the audio clip. For example,the sounds may be of the tennis ball being hit, the crowd, the players,the commentators, etc. Control circuitry 504 may map the input videogame commands to the objects and sounds. These methods of determiningthe set of characteristics is further discussed in the description ofFIG. 13 .

At step 1206, control circuitry 504 (FIG. 5 ) determines whether the setof characteristics associated with the fingerprint corresponds with aset of game elements in the video game engine data. For example, onecharacteristic in the set of characteristics may be a tennis player(e.g., identified in the first stream using object recognition). Controlcircuitry 504 may thus label the object with an identifier such as“tennis player.” In some embodiments, control circuitry 504 mayassociate additional details with the tennis player. For example,control circuitry 504 may recognize that the tennis player is RogerFederer and is wearing a blue shirt with black shorts. The game elementsin the video game engine data may be graphics, audio, game code, etc.Control circuitry 504 may determine whether there are any game elementsassociated with Roger Federer in the video game engine data. Forexample, control circuitry 504 may identify code in the video gameengine data that can render Roger Federer in the virtual game space. Thecode may also reference the black shirt and black shorts attire, audioclips of Roger Federer, game mechanics that are associated with hismovement, etc., which are also found in the video game engine data.Accordingly, control circuitry 504 may determine that the characteristic“Roger Federer” is associated with a game element (e.g., game code) thatcan be used to render an in-game version of the characteristic.

At step 1208, in response to determining that set of characteristicsassociated with the fingerprint corresponds with the set of gameelements in the video game engine data, control circuitry 504 (FIG. 5 )generates the second stream based on the set of game data. For example,control circuitry 504 may identify game elements that correspond to eachcharacteristic identified with the set of characteristics. In the case“Tennis World Tour 2018,” for a particular set of frames,characteristics such as “Roger Federer,” “tennis ball,” and “tennis net”may be respectively associated with game elements such as game code thatcan render the characteristics in-game, graphics, and audio clips. Thegame elements are then rendered in the video game platform and generatedfor display as the second stream.

It is contemplated that the steps or descriptions of FIG. 12 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 12 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 12 .

FIG. 13 is a flowchart of an illustrative process for determining theset of characteristics associated with the fingerprint, in accordancewith some embodiments of the disclosure. It should be noted that process1300 or any step thereof could be performed on, or provided by, any ofthe devices shown in FIGS. 5-6 . For example, process 1300 may beexecuted by control circuitry 504 (FIG. 5 ) as instructed by a mediaguidance application implemented on a user device (e.g., user equipmentdevices 602, 604, and/or 606 (FIG. 6 )) in order to determine the set ofcharacteristics associated with the fingerprint. In addition, one ormore steps of process 1300 may be incorporated into or combined with oneor more steps of any other process or embodiment (e.g., as described inrelation to FIGS. 1-2, 7-12 and 14-16 ).

At step 1302, control circuitry 504 (FIG. 5 ) performs objectrecognition on a frame of the first stream to identify the dimensionalspace. This step is only needed if the video game engine data does notindicate the dimensional space. Accordingly, control circuitry 504 maydetermine whether the first stream is depicting a three-dimensionalspace (e.g., a tennis court) or a two-dimensional space (e.g., a sidescrolling environment such as in Super Mario World). In order toidentify the dimensional space, control circuitry 504 may utilize acombination of computer vision and machine learning. More specifically,control circuitry 504 may use the frame of the first stream as an inputto a machine learning algorithm that outputs a depth map. The machinelearning algorithm may be pre-trained using a variety of images anddimensional data associated with the images. An algorithm trained toidentify how objects in an image appear, based on the dimensions of thespace depicted in the image, may output the identity of the dimensionalspace. For example, the algorithm, as implemented by control circuitry504, may detect features such as the position of various objects in theframe and determine a depth map accordingly. If the depth map isdescribed in three dimensions (e.g., via an x-coordinate, a y-coordinateand a z-coordinate), control circuitry 504 may determine that thedimensional space is three-dimensional. If the depth map is described intwo dimensions, control circuitry 504 may determine that the dimensionalspace is two-dimensional.

At step 1304, control circuitry 504 (FIG. 5 ) performs objectrecognition on the frame of the first stream to identify the object ofthe plurality of objects. For example, control circuitry 504 may utilizeimage processes such as segmentation to identify pixels in the framethat can be grouped to form an object. In response to segmenting theframe, control circuitry 504 may compare the segmented pixels to imagesin an image database stored in storage 508 (FIG. 5 ) or in a remoteserver. The image database may contain images of various objects andidentify them with names. For example, control circuitry 504 may segmenta group of pixels in the frame of the first stream that form a tennisball. Control circuitry 504 may compare those segmented pixels to theimages in the image database and determine a correspondence with animage of a tennis ball. In response to determining the match, controlcircuitry 504 may classify the segmented pixels based on the name of theimage that matched the segmented pixels.

At step 1306, control circuitry 504 (FIG. 5 ) determines the location ofthe object of the plurality of objects with respect to a virtual viewingposition in the dimensional space. For example, control circuitry 504may utilize the depth map from step 1302 to determine the positions ofthe objects with relative to each other. For example, the depth map mayindicate that the first tennis player is at a position (1, 2, 1) and thesecond tennis player is at (−5, 2, 5). These values indicate that thesecond tennis player is 6 units to the left and 4 units ahead of thefirst tennis player. As mentioned previously, these units may bearbitrary (e.g., virtual inches, meters, pixels, etc.). The y-coordinatesignifies that both tennis players are at the same elevation.

It is contemplated that the steps or descriptions of FIG. 13 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 13 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 13 .

FIG. 14 is a flowchart of an illustrative process for generating thevideo contents of the second stream in the video game platform, inaccordance with some embodiments of the disclosure. It should be notedthat process 1400 or any step thereof could be performed on, or providedby, any of the devices shown in FIGS. 5-6 . For example, process 1400may be executed by control circuitry 504 (FIG. 5 ) as instructed by amedia guidance application implemented on a user device (e.g., userequipment devices 602, 604, and/or 606 (FIG. 6 )) in order to generatethe video contents of the second stream in the video game platform. Inaddition, one or more steps of process 1400 may be incorporated into orcombined with one or more steps of any other process or embodiment(e.g., as described in relation to FIGS. 1-2, 7-13 and 15-16 ).

At step 1402, control circuitry 504 (FIG. 5 ) searches the video gameengine data for a virtual game space that matches the dimensional space.The dimensional space is associated with the first stream and thevirtual game space is associated with the second stream. For example, inresponse to determining that the first stream is associated with athree-dimensional space, control circuitry 504 may search the video gameengine data for code that describes three-dimensional objects andenvironments. In response to determining that the video game engine datais associated with three-dimensional objects and rendering, controlcircuitry 504 may determine that the virtual game space of the videogame is expressed in three dimensions.

At step 1404, control circuitry 504 (FIG. 5 ) searches the video gameengine data for a game object that matches the object of the pluralityof objects. For example, control circuitry 504 may label the object withan identifier such as “tennis player one.” In some embodiments, controlcircuitry 504 may associate additional details with tennis player one.For example, control circuitry 504 may recognize that tennis player oneis Roger Federer and is wearing a blue shirt with black shorts. The gameelements in the video game engine data may be graphics, audio, gamecode, etc. Control circuitry 504 may determine whether there are anygame elements associated with Roger Federer in the video game enginedata. For example, control circuitry 504 may identify code in the videogame engine data that can render Roger Federer in the virtual gamespace. The code may also reference the black shirt and black shortsattire, audio clips of Roger Federer, game mechanics that are associatedwith his movement, etc., which are also found in the video game enginedata. Accordingly, control circuitry 504 may determine that object“tennis player one” is associated with a specific game element (e.g.,game code) that can be used to render an in-game version of the object.

At step 1406, in response to identifying the virtual game space and thegame object in the video game engine data, control circuitry 504 (FIG. 5) determines a set of game coordinates of the game object in the virtualgame space based on the location of the object of the plurality ofobjects. As discussed previously, the location of the objects in theplurality of objects are relative to any arbitrary object identified inthe first stream. In order to determine game coordinates, controlcircuitry 504 may first retrieve the virtual viewing position from thevideo game engine data. For example, video game engine data may indicatea default virtual viewing position that the game initializes the videogame environment around. In addition, control circuitry 504 maydetermine the default position of a game object such as tennis playerone. Control circuitry 504 may determine the displacement between thegame object and the virtual viewing position. Suppose that the virtualviewing position is at an origin (0, 0, 0) and the game object is at thecoordinate (0, −15, 20). This signifies that when the video game isnormally rendered, tennis player one is always 15 units below and 20units ahead of the virtual viewing position. Using thelocations/positions of the plurality of objects relative to the object“tennis player one” in the first stream, control circuitry 504 maycalculate the game coordinates of the game objects relative to the gameobject, tennis player one. For example, if the virtual displacementbetween tennis player one and tennis player two is (−1, 0, 40) in thefirst stream, control circuitry 504 may determine that the displacementbetween the respective game objects is proportional to (−1, 0, 40) inthe virtual game space.

At step 1408, control circuitry 504 (FIG. 5 ) determines a video refreshrate of the first stream. For example, control circuitry 504 may referto the metadata of the first stream, as retrieved from the mediaguidance data source 618 (FIG. 6 ), to determine the amount of framesper second transmitted in the first stream.

At step 1410, control circuitry 504 (FIG. 5 ) determines a game refreshrate based on the video refresh rate. For example, control circuitry 504may retrieve a refresh rate in the video game engine data. This refreshrate may indicate the amount of frames in a period of time that can bepresented to a user accessing the video game (e.g. 60 Hz). The videorefresh rate may be different from this refresh rate because ofstreaming conditions associated with receiving the first stream (e.g.,50 Hz). Control circuitry 504 may thus determine a game refresh ratewhose value is equal to one of the refresh rates or is between the tworefresh rates (e.g., 45 Hz).

At step 1412, control circuitry 504 (FIG. 5 ) render at the game refreshrate, within the video game platform, the game object at the set of gamecoordinates in the virtual game space. For example, control circuitry504 may execute the game code provided in the video game engine data torender the game objects at their respective game coordinates.Furthermore, control circuitry 504 may monitor the first stream andre-render the game objects based on the game refresh rate. Thus, if thegame refresh rate transmits 45 frames per second, control circuitry 504may monitor for changes in the first stream for each frame and re-renderaccordingly.

At step 1414, control circuitry 504 (FIG. 5 ) generates for display thevideo contents within the video game platform at the virtual viewingposition and at a virtual viewing angle that matches the curated viewingperspective. The virtual viewing angle may be a vector that points in aspecific direction in the virtual game space. For example, from thevirtual viewing position (0, 0, 0), the vector may point to thecoordinate (0, −15, 30) (e.g., the center of the virtual tennis net).Therefore, the virtual viewing angle focus the curated viewingperspective to the court. If the virtual viewing angle is associatedwith a vector pointing to the game coordinate (0, −15, −30), the curatedviewing perspective may be focused in the opposite direction (e.g.,towards the virtual audience in the stands behind the court).

It is contemplated that the steps or descriptions of FIG. 14 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 14 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 14 .

FIG. 15 is a flowchart of an illustrative process for generating thevideo contents of the second stream in the video game platform, inaccordance with some embodiments of the disclosure. It should be notedthat process 1500 or any step thereof could be performed on, or providedby, any of the devices shown in FIGS. 5-6 . For example, process 1500may be executed by control circuitry 504 (FIG. 5 ) as instructed by amedia guidance application implemented on a user device (e.g., userequipment devices 602, 604, and/or 606 (FIG. 6 )) in order to generatethe video contents of the second stream in the video game platform. Inaddition, one or more steps of process 1500 may be incorporated into orcombined with one or more steps of any other process or embodiment(e.g., as described in relation to FIGS. 1-2, 7-14 and 16 ).

At step 1502, control circuitry 504 (FIG. 5 ) determines an amount ofcorrespondence between the set of characteristics associated with thefingerprint with a set of game elements in the video game engine data

The amount of correspondence may be quantitative (e.g., a percentage, afraction, a normalized correlation, etc.) or qualitative (e.g.,“similar,” “not similar,” “exact match,” “no match”). Suppose the set ofcharacteristics comprise of graphics, audio files, and textualinformation. The set of game elements may comprise of mathematicalmodels, graphics, audio, and text. Control circuitry 504 may compareeach characteristic with each game element and determine a respectiveamount of correspondence for each pair of characteristics and gameelements. Suppose the amount of correspondence between a characteristicand a game element is 80%.

At step 1504, control circuitry 504 (FIG. 5 ) determines whether theamount of correspondence is greater than a threshold. The threshold maybe a pre-determined value stored in storage 508 (FIG. 5 ). The thresholdmay also be a qualitative or quantitative value. For example, thethreshold may be 70%.

At step 1506, in response to determining that the amount ofcorrespondence is greater than the threshold, control circuitry 504(FIG. 5 ) generates the second stream based on the set of game data.This is further described in the description of FIG. 14 .

At step 1508, in response to determining that the amount ofcorrespondence is less than the threshold, control circuitry 504 (FIG. 5) generates for display the first stream of the video contents. In thiscase, control circuitry 504 is unable to match the characteristics ofthe first stream with the game elements in the video game engine data.Therefore, control circuitry 504 simply generates for display the firststream and does not attempt to generate the second stream.

It is contemplated that the steps or descriptions of FIG. 15 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 15 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 15 .

FIG. 16 is a flowchart of an illustrative process for switching thevideo contents within the video game platform from the non-curatedviewing perspective to the curated viewing perspective, in accordancewith some embodiments of the disclosure. It should be noted that process1600 or any step thereof could be performed on, or provided by, any ofthe devices shown in FIGS. 5-6 . For example, process 1600 may beexecuted by control circuitry 504 (FIG. 5 ) as instructed by a mediaguidance application implemented on a user device (e.g., user equipmentdevices 602, 604, and/or 606 (FIG. 6 )) in order to switch the videocontents within the video game platform from the non-curated viewingperspective to the curated viewing perspective. In addition, one or moresteps of process 1600 may be incorporated into or combined with one ormore steps of any other process or embodiment (e.g., as described inrelation to FIGS. 1-2 and 7-15 ).

At step 1602, control circuitry 504 (FIG. 5 ) receives a second input(e.g., via I/O Path 502 (FIG. 5 )), at the user equipment, requesting toview the video contents from the curated viewing perspective. Forexample, control circuitry 504 may generate for display an option forthe user to switch back to the curated viewing perspective. In thiscase, the user may select that option.

At step 1604, in response to receiving the second input, controlcircuitry 504 (FIG. 5 ) switches the video contents within the videogame platform from the non-curated viewing perspective to the curatedviewing perspective. For example, control circuitry 504 may re-renderall game objects at respective game coordinates relative to the curatedvirtual viewing position.

It is contemplated that the steps or descriptions of FIG. 16 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 16 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Any of these steps may also be skipped oromitted from the process. Furthermore, it should be noted that any ofthe devices or equipment discussed in relation to FIGS. 5-6 could beused to perform one or more of the steps in FIG. 16 .

The processes discussed above are intended to be illustrative and notlimiting. One skilled in the art would appreciate that the steps of theprocesses discussed herein may be omitted, modified, combined, and/orrearranged, and any additional steps may be performed without departingfrom the scope of the invention. More generally, the above disclosure ismeant to be exemplary and not limiting. Only the claims that follow aremeant to set bounds as to what the present invention includes.Furthermore, it should be noted that the features and limitationsdescribed in any one embodiment may be applied to any other embodimentherein, and flowcharts or examples relating to one embodiment may becombined with any other embodiment in a suitable manner, done indifferent orders, or done in parallel. In addition, the systems andmethods described herein may be performed in real time. It should alsobe noted that the systems and/or methods described above may be appliedto, or used in accordance with, other systems and/or methods.

1.-56. (canceled)
 57. A computer-implemented method comprising:receiving a first stream depicting footage of a video game; identifyingthe video game; accessing video game code locally for a particularobject of the video game; generating the particular object using thevideo game code; and generating for display a second stream depictingthe particular object.
 58. The method of claim 57, wherein the firststream and the second stream are simultaneously generated for display.59. The method of claim 57, wherein the particular object is depicted inthe footage of the video game.
 60. The method of claim 57, furthercomprising: receiving user input, wherein accessing the video game codeand generating the particular object using the video game code isperformed in response to receiving the user input.
 61. The method ofclaim 57, wherein the video game code is executable to render theparticular object in a virtual game space of the second stream.
 62. Themethod of claim 61, further comprising: identifying the virtual gamespace by determining, based on the video game code, that one or morecharacteristics of the virtual game space match one or morecharacteristics of dimensional space associated with the first stream.63. The method of claim 57, further comprising identifying the videogame and determining the video game code by: retrieving a firstidentifier associated with the video game of the first stream and asecond identifier associated with the video game code; searching a videogame database comprised of metadata associated with a plurality of videogames, for an entry of the video game that is associated with both thefirst identifier and the second identifier; and identifying the videogame and the video game code, based on the entry of the video game. 64.The method of claim 57, wherein the particular object is depicted in thefootage of the video game, the method further comprising: determiningthat one or more characteristics of the particular object of the firststream match one or more characteristics of the particular objectspecified in the video game code, wherein generating for display thesecond stream is performed based at least in part on the determining.65. The method of claim 57, further comprising: determining a locationof the particular object in dimensional space of the first stream,wherein generating for display the second stream is performed based atleast in part on the determining.
 66. The method of claim 57, furthercomprising: determining a video refresh rate associated with the firststream; wherein generating for display the second stream is performedbased at least in part on the determining.
 67. A computer-implementedsystem comprising: memory; control circuitry configured to; receive afirst stream depicting footage of a video game; identify the video game;access video game code locally for a particular object of the videogame, wherein the video game code is stored in the memory; generate theparticular object using the video game code; and generate for display asecond stream depicting the particular object.
 68. The system of claim67, wherein the first stream and the second stream are simultaneouslygenerated for display.
 69. The system of claim 67, wherein theparticular object is depicted in the footage of the video game.
 70. Thesystem of claim 67, wherein the control circuitry is further configuredto: receive user input; and perform the accessing of the video game codeand the generating of the particular object using the video game code inresponse to receiving the user input.
 71. The system of claim 67,wherein the video game code is executable to render the particularobject in a virtual game space of the second stream.
 72. The system ofclaim 71, wherein the control circuitry is further configured to:identify the virtual game space by determining, based on the video gamecode, that one or more characteristics of the virtual game space matchone or more characteristics of dimensional space associated with thefirst stream.
 73. The system of claim 67, wherein the control circuitryis further configured to identify the video game and determine the videogame code by: retrieving a first identifier associated with the videogame of the first stream and a second identifier associated with thevideo game code; searching a video game database comprised of metadataassociated with a plurality of video games, for an entry of the videogame that is associated with both the first identifier and the secondidentifier; and identifying the video game and the video game code,based on the entry of the video game.
 74. The system of claim 67,wherein the particular object is depicted in the footage of the videogame, and the control circuitry is further configured to: determine thatone or more characteristics of the particular object of the first streammatch one or more characteristics of the particular object specified inthe video game code; and generate for display the second stream based atleast in part on the determining.
 75. The system of claim 67, whereinthe control circuitry is further configured to: determine a location ofthe particular object in dimensional space of the first stream; andgenerate for display the second stream based at least in part on thedetermining.
 76. The system of claim 67, wherein the control circuitryis further configured to: determine a video refresh rate associated withthe first stream; generate for display the second stream is performedbased at least in part on the determining.